我需要使用where子句从表中选择数据。场景在这里。我想查看2月份的数据,从20:00到第二天早上08:00。这里的字段是日期时间。如何选择数据?请回复
问问题
67 次
2 回答
1
这是一种方法:
select *
from t
where hour(t.datetime + 4.0/24) between 0 and 11 and
month(t.datetime + 4.0/24) = 2;
假设您希望将 1 月 31 日的晚上 9 点包含在 2 月中,这将增加四个小时。如果您真的希望包括 3 月 1 日凌晨 1:00,则减去 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);
于 2013-08-29T11:38:25.437 回答
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));
于 2013-08-29T11:41:00.413 回答