我需要一些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
我需要有关日期分组的帮助。任何帮助都会很感激。
答案 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);