PostgreSQLでは、extract()を使用できます epochと一緒に機能する Unixタイムスタンプを返す引数。
現在の日付/時刻に基づいてUnixタイムスタンプを返すことも、別の指定された日付/時刻に基づいて取得することもできます。
Unixタイムスタンプ(Unixエポック時間、Unix時間、またはPOSIX時間とも呼ばれます)は、1970年1月1日木曜日の00:00:00、Coordinated Universal Time(UTC)から経過した秒数です。
現在のUnixタイムスタンプを取得する
現在の日時からUnixタイムスタンプを取得する例を次に示します。
SELECT extract(epoch from now()); 結果:
1650152298.430101
日付値
これは、指定されたdateからUnixタイムスタンプを取得する例です。 値:
SELECT extract(epoch from date '2030-08-15'); 結果:
1912982400
dateと一緒に使用する場合 値、epoch タイムゾーンや夏時間のルールに関係なく、1970-01-0100:00:00からの公称秒数を返します。
タイムスタンプ値
指定したtimestampからUnixタイムスタンプを取得する例を次に示します。 値:
SELECT extract(epoch from timestamp '2030-08-15 03:30:45'); 結果:
1912995045
timestampと一緒に使用する場合 値、epoch タイムゾーンまたは夏時間の規則に関係なく、1970-01-0100:00:00以降の公称秒数を返します。これは、dateを使用する場合と同じです。 値。
タイムゾーン値のあるタイムスタンプ
これは、指定されたtimestamp with time zoneからUnixタイムスタンプを取得する例です。 値:
SELECT extract(
epoch from timestamp with time zone '2030-08-15 03:30:45.12-08'
); 結果:
1913023845.12
timestamp with time zoneとともに使用する場合 値、epoch 1970-01-01 00:00:00 UTCからの秒数を返します(それ以前のタイムスタンプは負)
間隔
intervalからUnixタイムスタンプを取得することもできます 値:
SELECT extract(epoch from interval '7 days 2 hours'); 結果:
612000
intervalとともに使用する場合 値、epoch 間隔内の合計秒数を返します。