Как сравнить время эпохи с 24 часами назад в SQL Server? - PullRequest
2 голосов
/ 30 октября 2008

Я использую MS SQL Server 2005, у меня даты хранятся в эпоху (начиная с 1970 года). Мне нужно создать инструкцию, которая повлияет на любую запись, которая не обновлялась в течение последних 24 часов.

Ответы [ 2 ]

2 голосов
/ 30 октября 2008

Чтобы получить текущую дату и время в формате эпох, используйте ( через ):

SELECT DATEDIFF(s,'19700101 05:00:00:000',GETUTCDATE())

Чтобы узнать время эпохи - используйте 24 часа:

SELECT DATEDIFF(s,'19700101 05:00:00:000', DATEADD(DAY, -1, GETUTCDATE()))

Итак, вы можете сделать:

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
1 голос
/ 30 октября 2008

Вы можете преобразовать дату и время в SQL Server в время эпохи, рассчитав количество секунд, прошедших с 1 января 1970 года, следующим образом.

Select DateDiff(Second, '19700101', GetDate())

Чтобы получить строки за последние 24 часа ....

Select Columns
From   Table
Where  EpochColumn Between DateDiff(Second, '19700101', GetDate()) And DateDiff(Second, '19700101, GetDate()-1)
...