【发布时间】:2015-04-22 07:24:40
【问题描述】:
我正在尝试查询我们的数据库以查找在昨天早上 6 点到今天早上 6 点之间创建的所有记录。这将在一天中的任何时候在报告中运行,因此设置的时间/日期是无用的。
到目前为止我有这个:-
SELECT * FROM DaySummaryDetail DSD
WHERE DSD.FromDateTime BETWEEN DATEADD(DAY, -1, GetDate())
AND DATEADD(Day, 1, GetDate())
但显然这仅适用于从现在到现在的 24 小时前。我不知道如何应用时间和日期。
我在网上找到的每个示例似乎都略有不同,并使用设置的日期/时间,即>= 20/02/2015 06:00:00。
我通常使用 Oracle SQL,它可以简单地使用:-
ptt.mod_date_time >= TRUNC (SYSDATE - 1) - 2 / 24
AND ptt.mod_date_time <= TRUNC (SYSDATE - 1) + 22 / 24
这将返回从晚上 10 点到晚上 10 点的结果,但格式在 SQL Server 中看起来完全不同。
【问题讨论】:
-
您使用的是哪个版本的 SQL Server?
-
对不起,我应该添加那个!现在是 2012 年。标题已编辑!
标签: sql-server datetime sql-server-2012