0

我们使用的是 Microsoft Server 2012。我需要在给定的时间间隔之间对每天的一些变量求和。

这是简化的查询:

    选择总和(一些变量)
    从我的表
    WHERE CAST([wrkActionDate] as TIME) 在 '19:00:00' 和 '07:00:00' 之间

我得到错误:

    类型 TIME 不是定义的系统类型。

我猜“Microsoft Server 2012”中不存在数据类型,如果是这样,如何编写可以执行我想做的查询?

PS:很抱歉,如果我写了一些错误。我不会计算英语:)

4

1 回答 1

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 
于 2013-10-22T10:19:09.860 回答