我需要使用where子句从表中选择数据。场景在这里。我希望在2月份的数据中看到第二天早上20:00到08:00的数据。这里的字段是datetime。 如何选择数据?请回复
答案 0 :(得分:1)
这是一种方式:
select *
from t
where hour(t.datetime + 4.0/24) between 0 and 11 and
month(t.datetime + 4.0/24) = 2;
假设你想要晚上9点,这个日期增加了4个小时。 1月31日将被列入2月份。如果你真的希望包括3月1日凌晨1点,那么减去20小时:
select *
from t
where hour(t.datetime - 20.0/24) between 0 and 11 and
month(t.datetime - 20.0/24) = 2;
顺便说一下,你也可以把时间表示为:
where (hour(t.datetime) >= 20 or hour(t.datetime) < 8);
答案 1 :(得分:0)
也许
...
WHERE( DATEPART(month, DateCol) = 2
AND( DATEPART(hour, DateCol) >= 20 OR DATEPART(hour, DateCol) <= 8 )
OR ( DATEPART(month, DateCol) = 3
AND DATEPART(day, DateCol) = 1
AND DATEPART(hour, DateCol) <= 8));