Comment comparer une époque à celle d'il ya 24 heures dans SQL Server?
-
05-07-2019 - |
Question
J'utilise MS SQL Server 2005, j'ai des dates stockées dans l'époque (à partir de 1970). Je dois créer une instruction qui affectera tout enregistrement qui n'a pas été mis à jour au cours des 24 dernières heures.
La solution
Pour obtenir l'heure actuelle au format d'époque, utilisez ( via ):
SELECT DATEDIFF(s,'19700101 05:00:00:000',GETUTCDATE())
Pour connaître l'heure actuelle - Utilisation 24 heures:
SELECT DATEDIFF(s,'19700101 05:00:00:000', DATEADD(DAY, -1, GETUTCDATE()))
Alors, vous pourriez faire:
DECLARE @24_hours_ago AS INT
SELECT @24_hours_ago = DATEDIFF(s,'19700101 05:00:00:000', DATEADD(DAY, -1, GETUTCDATE()))
UPDATE table SET col = value WHERE last_updated < @24_hours_ago
Autres conseils
Vous pouvez convertir de SQL Server DateTime en heure d’époque en calculant le nombre de secondes écoulées depuis le 1er janvier 1970, comme suit.
Sélectionnez DateDiff (en second lieu, "19700101", GetDate ())
Pour obtenir des lignes des dernières 24 heures ....
Select Columns
From Table
Where EpochColumn Between DateDiff(Second, '19700101', GetDate()) And DateDiff(Second, '19700101, GetDate()-1)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow