преобразование времени в sql - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь получить от 15 минут до 1 часа. нижеприведенный SQL - это то, что я придумал, используя TIMESTAMPDIFF. Как я получаю сообщение об ошибке «TIMESTAMPDIFF» - это не имя встроенной функции.

Мой SQL

SELECT Name, count(*)
FROM [test.database]
where TME between '2018-10-01 00:00:00.000' and '2019-01-31 00:00:00.999'
and TIMESTAMPDIFF(SECOND, date_trunc('SECOND', DT), date_trunc('SECOND', TME)) >= 900
and TIMESTAMPDIFF(SECOND, date_trunc('SECOND', DT), date_trunc('SECOND', TME)) < 3600
group by Name 
order by Name 

Может кто-нибудь помочь мне заставить мой SQL работать, пожалуйста.

1008 * БЛАГОДАРЯ *

Ответы [ 2 ]

0 голосов
/ 15 мая 2019
SELECT Name, count(*)
FROM [test.database]

where (TME between '2018-10-01 00:00:00.000' and '2019-01-31 00:00:00.999')
and (datepart(SECOND,TME) between 15 and 60)
group by Name 
order by Name 
0 голосов
/ 15 мая 2019

Предположительно, вы используете SQL Server и хотите datediff(). Тем не менее, я бы использовал dateadd().

Сравнение начальной даты выглядит довольно громоздким. Я не понимаю, почему вы хотите, чтобы окончание продолжалось до одной секунды до 31 января. Поэтому я предполагаю, что вы хотите что-то вроде этого:

select Name, count(*)
from [test.database]
where TME >= '2018-10-01' and
      TME < '2019-01-31' and
      TME >= dateadd(SECOND, 900, DT) and
      TME <= dateadd(SECOND, 3, DT) 
group by Name 
order by Name 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...