2010-01-13 24 views
6

Tôi biết điều này nên được dễ dàng và tôi làm điều đó không có probelms trong mySQL và Postgresql nhưng tôi đang đấu tranh với SQL Server. Tôi muốn chọn các hàng có trường datetimeoffset đã quá một giờ.SQL Server chọn nơi datetimeoffset cũ hơn 1 giờ

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

Tôi đã thử dateadd và dateiff nhưng không thể làm đúng.

Trả lời

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

Hãy cẩn thận với điều đó vì mydatetime là một DateTimeOffset mà có thể không theo múi giờ giống như máy chủ. Nếu bạn sử dụng SYSDATETIMEOFFSET (hoặc tùy chọn, hãy sử dụng hàm GETUTCDATE() và sử dụng SWITCHOFFSET trên mydatetime để chuyển đổi thành UTC), bạn sẽ so sánh táo với táo. – Josh

+0

Đúng vậy. –

Các vấn đề liên quan