在简单的SQL查询中进行日期分组

时间:2017-09-08 19:07:08

标签: sql sql-server tsql

我需要一些SQL查询的帮助。我在SQL服务器数据库中有一个包含三个字段的表。 Field1,Field2和DateField。我想计算在任何给定时间返回多少记录,其中Field1匹配一个变量,Field2匹配一个set变量,而DateField是在同一天(从凌晨12点到晚上23:59 24小时)

select count(*)
from TableA
where Field1 = 'A'
and Field2 = 'B'
and DateField = TODAY

我需要有关日期分组的帮助。任何帮助都会很感激。

2 个答案:

答案 0 :(得分:3)

简而言之:

and DateField >= TODAY and DateField < TOMORROW

具体是:

and DateField >= cast(current_timestamp as date) and DateField < cast(dateadd(dd, 1, current_timestamp) as date)  

您也可以使用BETWEEN,但我更喜欢上限。如果发现这种方法不容易出错,例如使用11:59pm作为结束时间并将记录从23:59.001留给23:59.997而没有回家,或者匹配实际上明天午夜的记录

答案 1 :(得分:1)

这是你想要的吗?

select count(*)
from TableA
where Field1 = 'A' and Field2 = 'B' and
      DateField = cast(getdate() as date);