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
間隔内の合計秒数を返します。