Oracle データベースでは、日付と時刻の型としてタイムスタンプ (タイムスタンプ) が使用されます。日付と時刻の問題を扱う場合、多くの場合、タイムスタンプを人間が判読できる日付と時刻の形式に変換する必要があります。この記事では、Oracle のタイムスタンプがさまざまな日付時刻形式に変換される方法について説明します。
Oracle 組み込み関数 to_char() を使用して、タイムスタンプを日時文字列に変換できます。 to_char() 関数の最初のパラメータは変換する必要があるタイムスタンプで、2 番目のパラメータはターゲットの日付と時刻の形式の文字列表現です。
たとえば、タイムスタンプを「YYYY-MM-DD HH24:MI:SS」形式の日時文字列に変換するには、次のコードを使用できます。
SELECT to_char(TIMESTAMP '2021-08-31 12:00:00', 'YYYY-MM-DD HH24:MI:SS') AS datetime_string FROM dual;
結果は次のようになります。次のようになります:
DATETIME_STRING ------------------- 2021-08-31 12:00:00
Unix 時間とは、1970 年 1 月 1 日 00:00:00 UTC から指定された時刻までの時間を指します。間の秒数。 Oracle では、次のコードを使用してタイムスタンプを Unix 時間に変換できます:
SELECT (TO_TIMESTAMP('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') - TIMESTAMP '2021-08-31 12:00:00') * 24 * 60 * 60 AS unix_time FROM dual;
このコードについて説明します。まず、TO_TIMESTAMP() 関数を使用して、文字列「1970-01-01 00:00:00」をタイムスタンプ型に変換します。次に、このタイムスタンプ (ここでは「2021-08-31 12:00:00」) から指定されたタイムスタンプを減算して、時差 (期間) を取得します。最後に、この時差に 1 日の秒数である 24 * 60 * 60 を掛けて、対応する Unix 時間を取得します。
上記のコードの出力結果は、1970 年 1 月 1 日 00:00:00 UTC から指定された時刻までの秒数を表す整数である必要があります。
Unix 時間をタイムスタンプに変換したい場合は、次のコードを使用できます:
SELECT TO_TIMESTAMP('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') + NUMTODSINTERVAL(1630425600, 'SECOND') AS timestamp FROM dual;
上記ではコードでは、TO_TIMESTAMP() 関数を使用して文字列 '1970-01-01 00:00:00' をタイムスタンプ型に変換します。次に、NUMTODSINTERVAL() 関数を使用して、Unix 時間 (ここでは 1630425600) を間隔型に変換します。最後に、タイムスタンプと時間間隔を追加して、Unix 時間に対応するタイムスタンプを取得します。
出力結果は、Unix 時間に対応する日時を示すタイムスタンプ型の値になります。
概要
この記事では、タイムスタンプをさまざまな日付と時刻の形式に変換できる Oracle タイムスタンプ変換方法を紹介します。これらの方法により、日付と時刻の問題をより簡単に処理できます。
以上がOracle タイムスタンプをさまざまな日時形式に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。