Oracle データベースで使用されるタイムスタンプはグリニッジ時間に基づいており、バイナリで保存された 18 桁の数値です。平均的なユーザーにとって、このタイムスタンプは直感的ではないため、変換が必要です。この記事では、Oracle のタイムスタンプの変換方法を紹介します。
1. Oracle タイムスタンプの構造
Oracle のタイムスタンプは 2 つの部分で構成されます:
1. 日付部分 (7 バイト): 日付情報が含まれており、次の数で表されます。 1601 年 1 月 1 日からの日数。
2. 時刻部 (1 バイト): 100 ナノ秒単位で表現される時刻情報が含まれます。
2. タイムスタンプを日付形式に変換する
Oracle タイムスタンプを日付形式に変換する必要がある場合は、次の SQL ステートメントを使用できます:
SELECT TO_DATE('1970 - 01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') (timestamp_column / (246060)) AS Converted_date
FROM your_table;
このうち、timestamp_column はタイムスタンプが配置されているカラム名、your_table はテーブル名です。上記の SQL ステートメントの機能は、タイムスタンプを 1970 年 1 月 1 日からの秒数に変換し、その日付のタイムスタンプを加算して実際の日付値を取得することです。
3. 日付形式をタイムスタンプに変換する
日付形式を Oracle タイムスタンプに変換する必要がある場合は、次の SQL ステートメントを使用できます:
SELECT ( CAST(NEW_TIME (日付列, 'GMT', 'UTC') AS TIMESTAMP) - TO_TIMESTAMP('1970-01-01 00:00:00 UTC', 'YYYY-MM-DD HH24:MI:SS TZR')) ( 2460601000000000) AS Converted_timestamp
FROM your_table;
このうち、date_column は日付が配置されている列名、your_table はテーブルです名前。上記 SQL ステートメントの機能は、指定された日付のタイムスタンプから 1970 年 1 月 1 日のタイムスタンプを減算し、1970 年 1 月 1 日から始まるタイムスタンプを取得することです (単位は 100 ナノ秒)。
Oracle のタイムスタンプは 100 ナノ秒の精度ですが、Unix タイムスタンプ (1970 年 1 月 1 日の 00:00:00 から始まる秒数) は秒単位の精度であることに注意してください。したがって、変換する場合は特に注意してください。
4. まとめ
上記の方法は、Oracle のタイムスタンプと通常の時刻形式の変換に使用できますが、精度が異なることに注意する必要があります。異なるシステム間でタイムスタンプ情報を正確に転送したい場合は、注意が必要です。
以上がOracleのタイムスタンプの変換方法についてお話します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。