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

Oracle:TZNAMEで取得可能ですか?

    タイムスタンプからTIMEZONE_REGIONを抽出して、TIMESTAMPWITHTIMEZONEを提供できます。そのように:

    SQL> select extract(timezone_region from current_timestamp)
      2  from dual
      3  /
    
    EXTRACT(TIMEZONE_REGIONFROMCURRENT_TIMESTAMP)
    ----------------------------------------------------------------
    CET
    
    SQL>  alter session set time_zone='UTC';
    
    Session altered.
    
    SQL> select extract(timezone_region from current_timestamp)
      2  from dual
      3  /
    
    EXTRACT(TIMEZONE_REGIONFROMCURRENT_TIMESTAMP)
    ----------------------------------------------------------------
    UTC
    
    SQL> alter session set time_zone='-04:00';
    
    Session altered.
    
    SQL> select extract(timezone_region from current_timestamp)
      2  from dual
      3  /
    
    EXTRACT(TIMEZONE_REGIONFROMCURRENT_TIMESTAMP)
    ----------------------------------------------------------------
    UNKNOWN
    
    SQL> 
    

    複数のタイムゾーン名がマイナス4時間のオフセットにマップされているため、最後の結果はUNKNOWNを返します。セッションレベルでタイムゾーン名を設定するには、さまざまな方法があります。それらの1つは、この問題を回避するための最良の方法である可能性があります。 詳細




    1. MySql:ステートメントを宣言する前にストアドプロシージャを呼び出す方法

    2. エラーを修正する方法:列c.relhasoidsはPostgresに存在しませんか?

    3. OracleSQLクロスタブクエリ

    4. JSON値を持つAmazonAthenaでSQLをクエリ(検索)する方法は?