7
votes

SQL Server Sélectionnez où DateTimeOffset est de plus d'une heure

Je sais que cela devrait être facile et je ne fais pas de probelms dans MySQL et PostgreSQL, mais je me débats avec SQL Server. Je veux sélectionner des lignes avec un champ DateTimeOffsetsset de plus d'une heure. XXX

J'ai essayé daadd et datrodiff mais je ne peux pas le faire correctement.


0 commentaires

3 Réponses :


8
votes
select * from table where mydatetime < dateadd(hh, -1, getdate())

1 commentaires

Soyez prudent avec cela, car MyDateTime est un DateTimeOffset qui peut ne pas être dans le même fuseau horaire que le serveur. Si vous utilisez SysDateTimeMoffset (ou éventuellement, utilisez getutCDate () et utilisez Stachoffset sur MyDateTime pour le convertir en UTC), vous comparez des pommes aux pommes.



24
votes
WHERE mydatetime < DATEADD(hour, -1, SYSDATETIMEOFFSET())
For more see: DATEADD (Transact-SQL)

0 commentaires

0
votes

Si vous ne voulez pas utiliser daaddd (), vous pouvez utiliser l'horodatage actuel - #seconds xxx


0 commentaires