2010-01-13 9 views
6

Ich weiß, das sollte einfach sein und ich mache es keine Probleme in mySQL und Postgresql, aber ich habe Probleme mit SQL Server. Ich möchte Zeilen mit einem datetimeoffset-Feld auswählen, das über eine Stunde alt ist.SQL Server wählen wo datetimeoffset älter als 1 Stunde

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

Ich habe dateadd und datediff versucht, aber kann es nicht richtig bekommen.

Antwort

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

Seien Sie mit, dass Sie vorsichtig, weil MyDateTime ein Datetime ist, die in der gleichen Zeitzone nicht als Server sein kann. Wenn Sie SYSDATETIMEOFFSET verwenden (oder optional GETUTCDATE() verwenden und SWITCHOFFSET zu mydatetime verwenden, um es in UTC zu konvertieren), werden Sie Äpfel mit Äpfeln vergleichen. – Josh

+0

Das ist richtig. –