Oracle Databaseでは、次の手法を使用して、Unixタイムスタンプ値から日付を返すことができます。
Unixタイムスタンプ(Unixエポック時間、Unix時間、またはPOSIX時間とも呼ばれます)は、1970年1月1日木曜日の00:00:00、Coordinated Universal Time(UTC)から経過した秒数です。
例
UnixタイムスタンプをDATE
に変換する例を次に示します。 値:
SELECT
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;
結果:
18-APR-22
ここでは、TO_DATE()
を使用します 1970-01-01の日付を作成する関数。次に、その日付にUnixタイムスタンプを追加して、結果を取得します。この場合、NUMTODSINTERVAL()
を使用します Unixタイムスタンプをinterval
に変換します 価値。結果はDATE
です 値。
日付と時刻を取得する
TO_TIMESTAMP()
を使用できます timestamp
を出力する関数 値:
SELECT
TO_TIMESTAMP( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;
結果:
18-APR-22 10.31.13.000000 PM
別の方法は次のようになります:
SELECT TO_CHAR(
TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + numtodsinterval( 1650321073, 'SECOND' ),
'YYYY-MM-DD HH24:MI:SS'
)
FROM DUAL;
結果:
2022-04-18 22:31:13
ここでは、TO_CHAR()
を使用します TO_DATE()
によって返された結果を出力する関数 私たちの好みの形式で。この関数は、結果をVARCHAR2
として返します。 値。