MSSQL:如何在24小时的时间范围内找到日期字段的记录,始终从第二天早上6点到早上6点开始

时间:2016-08-05 09:58:06

标签: sql sql-server tsql

我想做的是:
如果我选择从2016-06-01 06:00:002016-06-02 05:59:59之日的记录,则该记录应显示在2016-06-01下,而不是02

3 个答案:

答案 0 :(得分:0)

... GROUP BY CAST((DATEADD(hour, -6, YourDate) AS DATE)

如果您想查找' 2016-08-05' (根据你的要求你做

CAST((DATEADD(hour, -6, YourDate) AS DATE) = 2016-08-05'

请注意,在我的方法06:00:00然后表现为像午夜'在常规日系统中 - 即在6的中风,这是新的一天

答案 1 :(得分:0)

简单地减去六个小时:

select dateadd(hour, -6, mydate)
from mytable

答案 2 :(得分:0)

这是我想做的。如果有2016-06-01 06:00:00至2016年的日期记录,00:00:00至06:00:00之后的记录应在'2016-06-01 06:00:00'之下-06-02 06:00:00

CASE 当DATEPART(HOUR,RechargeOn)< DATEADD(HOUR,6,RechargeOn) DATEADD(HOUR,18,DATEADD(DAY,-1,RechargeOn)) RechargeOn 结束