MSSQL:我怎样才能找到日期字段在24小时内的记录,总是从第二天早上6点到第二天早上6点

MSSQL:我怎样才能找到日期字段在24小时内的记录,总是从第二天早上6点到第二天早上6点,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想做的是: 如果我选择了日期为2016-06-01 06:00:00至2016-06-02 05:59:59的记录,则该记录应显示在2016-06-01下方,而不是02下方。按CASTDATEADDhour分组,-6,您的日期为日期 如果您想根据您的要求查找发生在“2016-08-05”的记录,您可以这样做 CAST((DATEADD(hour, -6, YourDate) AS DATE) = 2016-08-05' 请注意,在我的方法中,06:00:00的行为类似于常规白天系统中的“午夜

我想做的是: 如果我选择了日期为2016-06-01 06:00:00至2016-06-02 05:59:59的记录,则该记录应显示在2016-06-01下方,而不是02下方。按CASTDATEADDhour分组,-6,您的日期为日期

如果您想根据您的要求查找发生在“2016-08-05”的记录,您可以这样做

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

请注意,在我的方法中,06:00:00的行为类似于常规白天系统中的“午夜”——即在6点时,这是新的一天

只需减去6小时:

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

这是我想做的。如果有2016-06-01 06:00:00至2016-06-02 06:00:00日期的记录,则00:00:00至06:00:00之后的记录应归入“2016-06-01 06:00:00”项下

案例 当DATEPARTHOUR时,充电结束

发布您的搜索结果,尝试使用查询选择记录,其中日期介于2016-06-01 06:00:00和2016-06-02 05:59:59之间。您可能正在查找类似DATEADDDAY、0、DATEDIFFHOUR、'1900-01-01 06:00:00.000',myDate/24的内容,可能会按DATEDIFFHOUR进行分组,'1900-01-01-01 06:00:00.000',myDate/24如果要避免在第59秒出现记录,则端点是正确的。否则,我强烈建议计算专用端点2016-06-02T06:00:00并使用