Как сравнить время эпохи с 24 часами назад в SQL Server?

StackOverflow https://stackoverflow.com/questions/248501

  •  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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top