Как сравнить время эпохи с 24 часами назад в SQL Server?
-
05-07-2019 - |
Вопрос
Я использую MS SQL Server 2005, даты у меня хранятся в эпоху (начиная с 1970 года). Мне нужно создать инструкцию, которая повлияет на любую запись, которая не обновлялась в течение последних 24 часов.
Решение
Чтобы перевести текущую дату и время в формат эпохи, используйте ( через ): р>
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
Другие советы
Вы можете преобразовать дату и время в SQL Server во время эпохи, рассчитав количество секунд, прошедших с 1 января 1970 года, следующим образом.
Выберите DateDiff (Second, '19700101', GetDate ())
Чтобы получить строки за последние 24 часа ....
Select Columns
From Table
Where EpochColumn Between DateDiff(Second, '19700101', GetDate()) And DateDiff(Second, '19700101, GetDate()-1)
Не связан с StackOverflow