首页 > 解决方案 > 运行报告时,如何在搜索日期时间范围时排除 12:00:00.000

问题描述

我正在尝试运行报告以返回日期为“明天”的所有内容,但我想在该日期包括从 12:01:00.000 到 11:59:00.000。我只能从当前日期时间返回并向前 24 小时。

AND e.event_date >= getdate()+2
AND e.event_date < getdate()+3

我怎么写这个?

标签: sqldatetimegetdate

解决方案


假设您正在通过 T-SQL 创建报告,这将起到作用:

AND e.event_date >= DATEADD(DAY, 1, CONVERT(DATE, GETDATE()))
AND e.event_date < DATEADD(DAY, 2, CONVERT(DATE, GETDATE()))

这将过滤所有带有明天 event_date 的条目。

您不能直接在 SQL 中获取当前日期,但可以将当前 DateTime 转换为 Date 对象,该对象将删除有关时间的信息。

如果你想排除 12:00:00.000 (你为什么要?),只需修改你的比较器:

AND e.event_date > DATEADD(DAY, 1, CONVERT(DATE, GETDATE()))

推荐阅读