我有按日期过滤的查询,现在只需要执行它的那一刻起最后24小时,为此我使用下一个代码:
( DateDiff(HH, vw_public_task.complete_date, getdate()) < 25)
我的日期过滤器可以提供过去24小时的查询结果,但不依赖于我当前的小时数,但根据&#34; day 08:00am
&#34; - &#34; day+1 08:00am
&#34;在我执行它的任何时候?
例如,如果我现在执行我的查询,我想查看昨天08:00am
到今天08:00am
的日期结果。
答案 0 :(得分:0)
您可以使用以下公式计算昨天上午8点:
-- Yesterday at 8 am.
SELECT
DATEADD(HOUR, 8, CAST(CAST(DATEADD(DAY, -1, GETDATE()) AS DATE) AS DATETIME)) AS Yesterday8AM
;
GetDate返回当前日期。最里面的date add减去一天。将此作为日期转换将删除时间戳。昨天午夜将这个投回到DateTime。现在我们正在处理DateTime,我们可以再次使用date add来增加8小时。
如果您使用的是SQL Server 2012或更高版本,请考虑使用本机函数DATETIME2FROMPARTS。
答案 1 :(得分:-1)
使用日期()(How to part DATE and TIME from DATETIME in MySQL)。
( DateDiff(HH, vw_public_task.complete_date, Date(getdate())+8 ) < 25)