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

Oracleは、タイムゾーン付きのTIMESTAMPをDATEに変換します

    to_timestamp_tz() at time zone 句を使用して、文字列リテラルをtimestamp with time zoneの値に変換できます。 データ型:

    SQL> with t1(tm) as(
      2    select '2013-11-08T10:11:31+02:00' from dual
      3  )
      4  select to_timestamp_tz(tm, 'yyyy-mm-dd"T"hh24:mi:ss TZH:TZM')
      5           at time zone '+4:00'         as this_way
      6       , to_timestamp_tz(tm, 'yyyy-mm-dd"T"hh24:mi:ss TZH:TZM')
      7           at time zone 'Europe/Moscow' as or_this_way
      8    from t1
      9  /
    

    結果:

    THIS_WAY                            OR_THIS_WAY
    ----------------------------------------------------------------------------
    2013-11-08 12.11.31 PM +04:00       2013-11-08 12.11.31 PM EUROPE/MOSCOW
    

    次に、cast()を使用します dateの値を生成する関数 データ型:

    with t1(tm) as(
      select '2013-11-08T10:11:31+02:00' from dual
    )
    select cast(to_timestamp_tz(tm, 'yyyy-mm-dd"T"hh24:mi:ss TZH:TZM') 
             at time zone '+4:00' as date)   as this_way  
         , cast(to_timestamp_tz(tm, 'yyyy-mm-dd"T"hh24:mi:ss TZH:TZM') 
             at time zone 'Europe/Moscow' as date) as or_this_way
      from t1
    
    This_Way             Or_This_Way 
    ------------------------------------------
    2013-11-08 12:11:31  2013-11-08 12:11:31 
    

    atタイムゾーン句とto_timestamp_tz()関数の詳細をご覧ください。



    1. ネストされたループの結合とパフォーマンススプール

    2. psqlでスクリプト変数をどのように使用しますか?

    3. SQLServerのHibernate構成ファイルを構成する方法

    4. MariaDBの日付から短い月の名前を取得する2つの方法