【问题标题】:Retrieve data between yesterday at 0700 and today at 0700检索昨天 0700 和今天 0700 之间的数据
【发布时间】:2020-10-29 19:04:53
【问题描述】:
我正在尝试提出一个 SQL 查询,该查询检索从昨天 0700 到今天 0700 的数据。我在下面尝试过,但没有得到正确的值。
where datediff(hour, Incident_Call_Date_Time,getutcdate()) between 6 and 30
字段中的数据格式如下:
2020-10-28 22:16:30.000
【问题讨论】:
标签:
sql
sql-server
datetime
【解决方案1】:
试试这个:
WHERE Incident_Call_Date_Time >= CONVERT(DATETIME, FORMAT(DATEADD(DAY, -1, GETDATE()), 'yyyy-MM-dd') + ' 07:00')
AND Incident_Call_Date_Time < CONVERT(DATETIME, FORMAT(GETDATE(), 'yyyy-MM-dd') + ' 07:00')
它获取昨天和今天的日期作为字符串(没有时间部分),将 07:00 添加到日期作为新的时间部分,并检查您的值是否介于新的 DATETIME 值之间。
【解决方案2】:
where Incident_Call_Date_Time
between dateadd(hh, 7, cast(cast(getutcdate() - 1 as date) as datetime))
and dateadd(hh, 7, cast(cast(getutcdate() as date) as datetime))