2010-01-13 66 views
6

我知道这应该很容易,我在mySQL和Postgresql中没有任何问题,但我正在努力使用SQL Server。我想选择具有一个多小时历史的datetimeoffset字段的行。SQL Server选择datetimeoffset大于1小时的地方

select * from table where mydatetime < getdate() - 1 hour 

我试过dateadd和datediff,但不能正确。

回答

7
select * from table where mydatetime < dateadd(hh, -1, getdate()) 
+1

小心,由于mydatetime是可能无法在同一时区的服务器DATETIMEOFFSET。如果您使用SYSDATETIMEOFFSET(或者可选地使用GETUTCDATE()并使用mydatetime上的SWITCHOFFSET将其转换为UTC),那么您会将苹果与苹果进行比较。 – Josh 2010-01-13 08:05:55

+0

这是正确的。 – 2010-01-13 08:07:32