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.

Était-ce utile?

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
scroll top