sql >> データベース >  >> RDS >> Oracle

Oracleデータベースで夏時間を処理する方法

    答えは:状況によります。

    合計で、データベースには3つがあります タイムゾーン

    1. セッションのタイムゾーン:SESSIONTIMEZONE

    これは、ALTER SESSION SET TIME_ZONE=...で変更できます。 いつでも。

    の結果に関連します
    • CURRENT_DATE

    • LOCALTIMESTAMP

    • CURRENT_TIMESTAMP


    CAST({TIMESTAMP/DATE without any timezone} AS TIMESTAMP WITH {LOCAL} TIME ZONE)を実行する場合のターゲットタイムゾーンでもあります。

    デフォルトのSESSIONTIMEZONE 環境変数ORA_SDTZで設定できます または(Windowsの場合)レジストリエントリHKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ (32ビットクライアントの場合)、それぞれ。 HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ (64ビットクライアントの場合)。

    1. データベースのタイムゾーン:DBTIMEZONE

    実際、これは日常の使用ではそれほど重要ではなく、TIMESTAMP WITH LOCAL TIME ZONEにのみ関連します。 データ型の列とストレージ形式を定義します。

    これはありません SYSDATEのタイムゾーン またはSYSTIMESTAMP !!!

    DBTIMEZONEは変更できません データベースにTIMESTAMP WITH LOCAL TIME ZONEのテーブルが含まれている場合 列と列にはデータが含まれています。それ以外の場合は、ALTER DATABASE SET TIME_ZONE='...';で変更できます。 。データベースがシャットダウンされて再起動されるまで、変更は有効になりません。

    DBTIMEZONE データベースの作成時に設定されます。データベースの作成中にタイムゾーンが指定されていない場合、Oracleはデフォルトでサーバーのオペレーティングシステムのタイムゾーンになります。

    1. データベースサーバーのオペレーティングシステムのタイムゾーン:

    このタイムゾーンは、

    の結果に関連しています。
    • SYSDATE

    • SYSTIMESTAMP


    当然、このタイムゾーンはデータベースレベルで変更できません。自国で夏時間が使用されている場合、このタイムゾーンは年に2回変更される可能性があります。 SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual;を使用して問い合わせることができます。 、たとえば。

    したがって、DBサーバーOSが適切にセットアップされている場合は、来週から夏の時間を取得する必要があります(少なくともヨーロッパでは)



    1. postgresql日時に日数を追加する方法

    2. SQLServerをPostgreSQLに接続する

    3. EM13cでのエージェントの廃止

    4. SQL Server 2008データベースを使用してvb.netまたはC#デスクトップアプリケーションにPower BIレポートとダッシュボードを埋め込む方法はありますか?