PostgreSQLでは、to_timestamp()
を使用できます Unixタイムスタンプ値を日付/時刻値に変換する関数。
Unixタイムスタンプ(Unixエポック時間、Unix時間、またはPOSIX時間とも呼ばれます)は、1970年1月1日木曜日の00:00:00、Coordinated Universal Time(UTC)から経過した秒数です。
例
簡単な例を次に示します。
SELECT to_timestamp(1912995045);
結果:
2030-08-15 03:30:45+00
この場合、特定のUnixタイムスタンプ値を渡しました。
結果が提供されたUnixタイムスタンプ値をどのように反映するかをさらに示す別の例を次に示します。
SELECT
now() AS "Current Date/Time",
extract(epoch from now()) AS "Unix Timestamp",
to_timestamp(extract(epoch from now())) AS "And back again...";
結果:
Current Date/Time | Unix Timestamp | And back again... -------------------------------+-------------------+------------------------------- 2022-04-19 19:25:27.068737+00 | 1650396327.068737 | 2022-04-19 19:25:27.068737+00
この例では、now()
を使用しました 現在の日付と時刻を出力します。次に、extract()
を使用しました その日付と時刻の値からUnixタイムスタンプを取得します。最後に、to_timestamp()
を使用しました 元の日付と時刻の値に変換し直します。
日付に変換
結果をdate
としてキャストすることもできます 時間部分を削除する値:
SELECT to_timestamp(1912995045)::date;
結果:
2030-08-15