SQL Serverでエポック時間を24時間前と比較するにはどうすればよいですか?
-
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
他のヒント
このように、1970年1月1日から経過した秒数を計算することにより、SQL ServerのDateTimeからエポック時間に変換できます。
DateDiff(Second、 '19700101'、GetDate())を選択
過去24時間の行を取得するには...
Select Columns
From Table
Where EpochColumn Between DateDiff(Second, '19700101', GetDate()) And DateDiff(Second, '19700101, GetDate()-1)
所属していません StackOverflow