我们正在使用Microsoft Server 2012.我需要在给定的时间间隔之间每天汇总一些变量。
以下是简化查询:
SELECT SUM(SomeVariable) FROM MyTable WHERE CAST([wrkActionDate] as TIME) BETWEEN '19:00:00' AND '07:00:00'
我得到错误:
Type TIME is not a defined system type.
我猜“Microsoft Server 2012”中不存在数据类型,如果是这样,如何编写查询哪个会做我想做的事情?
P.S:对不起,如果我写了一些写错误。我不计算英语:)
答案 0 :(得分:1)
FROM
和WHERE
。
施法时间工作 - 只是尝试使用SQL Server 2012 - 但范围无效(起始值大于结束值) - 你应该这样做:
SELECT SUM(SomeVariable)
FROM MyTable
WHERE
CAST([wkActionDate] AS TIME) BETWEEN '19:00:00' AND '23:59:59' OR
CAST([wkActionDate] AS TIME) BETWEEN '00:00:00' AND '07:00:00'
您还可以使用DATEPART
:
SELECT SUM(SomeVariable)
FROM MyTable
WHERE
DATEPART(hour,[wrkActionDate]) BETWEEN 19 AND 24 OR
DATEPART(hour,[wrkActionDate]) BETWEEN 0 AND 7