SQL Serverでエポック時間を24時間前と比較するにはどうすればよいですか?

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

他のヒント

このように、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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top