Sql server 如何在SQL语句中获取当前日期+4小时?

Sql server 如何在SQL语句中获取当前日期+4小时?,sql-server,tsql,sql-server-2008,Sql Server,Tsql,Sql Server 2008,我希望从表中检索数据,从昨天凌晨4点开始到今天凌晨4点结束。实现自动化的最佳方式是什么?我在想,也许可以抓取今天的日期并抵消4个小时,然后将其分配给一个变量?当前手动输入每天的时间/日期 当前代码: SELECT "HC_PRIME_REPORTDATA"."iReportDataID" FROM "WinTest1"."dbo"."HC_PRIME_REPORTDATA" "HC_PRIME_REPORTDATA" WHERE ("HC_PRIME_REPORTDATA"."dtTime

我希望从表中检索数据,从昨天凌晨4点开始到今天凌晨4点结束。实现自动化的最佳方式是什么?我在想,也许可以抓取今天的日期并抵消4个小时,然后将其分配给一个变量?当前手动输入每天的时间/日期

当前代码:

SELECT "HC_PRIME_REPORTDATA"."iReportDataID"
FROM   "WinTest1"."dbo"."HC_PRIME_REPORTDATA" "HC_PRIME_REPORTDATA"
WHERE  ("HC_PRIME_REPORTDATA"."dtTime">={ts '2011-10-19 04:00:00'} AND"HC_PRIME_REPORTDATA"."dtTime"<{ts '2011-10-20 04:00:00'})

非常感谢您的帮助

这里有一种方法:

DECLARE @HOURS_OFFSET INT=4; -- 4 AM

DECLARE @YESTERDAY_WITH_OFFSET DATETIME=DATEADD(hh, @HOURS_OFFSET, DATEADD(dd, -1, 
                                  DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)));
DECLARE @TODAY_WITH_OFFSET DATETIME=DATEADD(hh, @HOURS_OFFSET,DATEADD(dd, 
                                      DATEDIFF(dd, 0, GETDATE()), 0));

SELECT HC_PRIME_REPORTDATA.iReportDataID 
FROM   WinTest1.dbo.HC_PRIME_REPORTDATA AS HC_PRIME_REPORTDATA 
WHERE  HC_PRIME_REPORTDATA.dtTime >= @YESTERDAY_WITH_OFFSET 
   AND HC_PRIME_REPORTDATA.dtTime <= @TODAY_WITH_OFFSET 
将按标题要求执行:

例如: 选择getdate、dateaddhh、4、getdate

但是,您可以使用between按日期范围进行筛选,无需变量:

例如:

SELECT  HC_PRIME_REPORTDATA.iReportDataID
FROM    WinTest1..HC_PRIME_REPORTDATA HC_PRIME_REPORTDATA
WHERE   HC_PRIME_REPORTDATA.dtTime between dateadd(hh, 4, convert(datetime, convert(date, dateadd(d, -1, getdate()))))
                                            and dateadd(hh, 4, convert(datetime, convert(date, getdate())))

什么是RDBMS?SQL Server?什么版本?tsql标签将我们限制在Sybase/SQL Server上我意识到这一点,但版本很重要。这是SQL Server 2008。谢谢他希望将其设置为凌晨4点,这将返回当前时间+4小时。@JNK转换为日期将丢失时间组件,实际上是午夜。然后dateadd将其增加到4am1-您刚刚在编辑中添加了它。2-您假设SQL Server 2008+@JNK,这就是我最初限定dateadd段的原因,因为他的标题和实际问题是两个不同的东西。此外,OP询问的是2008年,所以我的答案完全正确。我只需要调整代码,将日期/时间格式设置为2011-10-19 04:00:00,否则效果很好。非常感谢。编辑:说得太快了,抱歉,刚刚意识到日期格式对搜索本身没有影响。我的错。