web-dev-qa-db-ja.com

OracleはDD-MON-YYをDD / MM / YYYYに変換します

Varchar2列の形式を「DD-MON-YY」から「DD/MM/YYYY」に変換しようとしています。

例:「1-JAN-16」から「1/01/2016」へ

あなたが尋ねることができるか、それが役立つかもしれない場合:

  • 「MON」の部分は英語ですが、現在のNLS設定はトルコ語です。
  • すべての年は2000年以降です。

これどうやってするの?前もって感謝します..

5
kzmlbyrk

NLS_DATE_LANGUAGEパラメーターを指定しない場合、独自のセッションのパラメーターが使用されます。

次のようにオーバーライドできます:

select TO_CHAR(TO_DATE('01-JAN-16','DD-MON-YY', 'NLS_DATE_LANGUAGE = English'),
           'DD/MM/YYYY') from dual;

これは、このクエリのみに影響し、他には何も影響しません。このような多くの日付で作業する必要がある場合、

ALTER SESSION SET NLS_DATE_LANGUAGE='ENGLISH'

-その後、後で変更するか、このセッションが終了して別のセッションを開始するとトルコ語にリセットされます。

この変更を(ほぼ)永続的にする必要がある場合は、SQL DeveloperまたはToadの設定、またはSQL * Plusのlogin.sqlに設定を変更します。

13
mathguy

これを試して:

TO_CHAR(TO_DATE('01-JAN-16','DD-MON-YY'),'DD/MM/YYYY')

データはクリーンである必要があります-すべてが元の形式に準拠している必要があります。そうでない場合、TO_DATE変換でエラーが発生します。

3
DCookie

[ツール] —> [設定] —> [データベース]-> [NLS] —> [日付形式]に移動し、日付をDD/MM/YYYYに変更します。

Oracle SQL Developerバージョン18.4.0.376ビルド376.1900

0
Ashish S