Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql中的转换时间_Sql_Sql Server - Fatal编程技术网

sql中的转换时间

sql中的转换时间,sql,sql-server,Sql,Sql Server,我试着在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',

我试着在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 
选择名称、计数(*)
来自[test.database]
其中,TME介于“2018-10-01 00:00:00.000”和“2019-01-31 00:00:00.999”之间
和TIMESTAMPDIFF(秒,date_trunc('SECOND',DT),date_trunc('SECOND',TME))>=900
和TIMESTAMPDIFF(秒,date_trunc('SECOND',DT),date_trunc('SECOND',TME))<3600
按名称分组
点名
有人能帮我使我的SQL工作吗


谢谢

您可能正在使用SQL Server并想要
datediff()
。但是,我会使用
dateadd()

最初的日期比较看起来相当麻烦。我不明白为什么你会希望结局持续到1月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 
选择名称、计数(*)
来自[test.database]
其中TME>='2018-10-01'和
TME<'2019-01-31'和
TME>=日期添加(秒,900,DT)和

TME
TIMESTAMPDIFF
不是sql server中的内置函数
我还可以使用什么?有什么建议吗?你用sql server标记了这个。您的错误消息听起来像sql server。但是您的代码中充满了mysql函数。@SeanLange和
[]
看起来像sql server。它同时使用mysql和sql server进行了标记。如果它确实是sql server
[test.database]
的话,可能会出现重复,这将给出一个错误(除非该表实际上包含一个点)。
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