почему разница во времени с использованием псевдонима не работает? - PullRequest
0 голосов
/ 16 марта 2020
SELECT
  t.imei,
  t.date,
  t.time startTime,
  t.ignition,
  t.tripStartStop,
  (
    SELECT
      min(time)
    from
      gps_data
    where
      time > t.time
      and date >= t.date
      and imei = '358480088853405'
      and tripStartStop = 0
  ) ' stopTime',
  SUBTIME('startTime', 'stopTime') AS diff
from
  gps_data t
where
  imei = '358480088853405'
  and date >= '2020-03-08'
  and date <= '2020-03-09'
  and tripStartStop = 1

Приведенный выше запрос возвращает значения startTime и stopTime в качестве значений псевдонимов, но я не могу получить разницу между этими двумя значениями

, используя как SUBTIME, так и TIMEDIFF

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Вы не можете использовать такие псевдонимы. Запрос:

SUBTIME('startTime','stopTime')

обрабатывает startTime и stopTime как строки, поэтому 00:00:00.

Вы можете сделать следующее:

select q.imei, q.date, q.startTime, q.ignition, 
       q.tripStartStop, q.stopTime, subtime(q.startTime, q.stopTime)
from (
  SELECT t.imei
       , t.date 
       , t.time startTime
       , t.ignition
       , t.tripStartStop
       , ( SELECT min(time) from gps_data where time>t.time and date>=t.date and imei='358480088853405' and tripStartStop=0 ) 'stopTime'
  from gps_data t 
  where 
    imei='358480088853405' 
     and date between '2020-03-08' and '2020-03-09' 
     and tripStartStop=1
) as q
0 голосов
/ 16 марта 2020

Вам нужно выбрать «starTime» и «stopTime», используя оператор выбора внутри подстроки. Это решило бы вашу проблему.

SUBTIME (SELECT (startTime), SELECT (stopTime))

SELECT t.imei
     , t.date 
     , t.time startTime
     , t.ignition
     , t.tripStartStop
     , ( SELECT min(time) from gps_data where time>t.time and date>=t.date and imei='358480088853405' and tripStartStop=0 ) ' stopTime'
     , SUBTIME(SELECT(startTime),SELECT(stopTime)) diff 
  from gps_data t 
 where imei='358480088853405' 
   and date>='2020-03-08' 
   and date<='2020-03-09' 
   and tripStartStop=1````
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...