dポイントプレゼントキャンペーン実施中!

TO_DATE関数を使用して文字を日付型に変換して表示させようと打っているのですが、エラーが出て困っています。
どこが間違っているのでしょうか?
回答のほど宜しくお願いいたします。
1 select to_date('1/OCT/2004', 'DD/MON/YYYY')
2* from dual
SQL> /
select to_date('1/OCT/2004', 'DD/MON/YYYY')
*
行1でエラーが発生しました。:
ORA-01843: 指定した月が無効です。

A 回答 (4件)

テリトリが日本だと思いますから'MON'の部分は 10月と指定しないとエラーになってしまいます。


日付の言語指定は変更可能ですので、OCT が使用したい場合には、以下を参考にしてください。

SQL> ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD';

セッションが変更されました。

SQL> ALTER SESSION SET NLS_DATE_LANGUAGE='JAPANESE';

セッションが変更されました。

SQL> SELECT TO_CHAR(SYSDATE, 'YYYY/MON/DD') FROM DUAL;

TO_CHAR(SYSDATE,'YYYY/MON/DD')
--------------------------------
2005/9月 /17

SQL> SELECT TO_DATE('01/10月/2005', 'DD/MON/YYYY') FROM DUAL;

TO_DATE('0
----------
2005/10/01

SQL> ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';

セッションが変更されました。

SQL> SELECT TO_CHAR(SYSDATE, 'YYYY/MON/DD') FROM DUAL;

TO_CHAR(SYSDATE,'YYYY/MON/DD
----------------------------
2005/SEP/17

SQL> SELECT TO_DATE('01/OCT/2005', 'DD/MON/YYYY') FROM DUAL;

TO_DATE('0
----------
2005/10/01
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';
と打った後に
SQL> SELECT TO_DATE('01/OCT/2005', 'DD/MON/YYYY') FROM DUAL;
とすればきちんと結果が返ってきました。

どうもありがとうございます。

お礼日時:2005/09/18 09:02

#1です。

お役に立てず申し訳ない。
ウチの環境では問題なく表示されたんですが、#2さんのおっしゃるようなこともあるんですね。
ちなみに、kyujikun さんの環境はどんなだったのでしょうか?参考までに教えていただければ。
    • good
    • 0
この回答へのお礼

#2さんの言うとおりにすればうまくできました。
私の環境はXPproで、OracleのSQL*Plusの10gを使用しています。
ご参考になれば幸いです。

お礼日時:2005/09/18 09:04

#2 です。

確認してみると
SELECT
TO_DATE('01/OCT/2005','DD/MON/YYYY','NLS_DATE_LANGUAGE=AMERICAN') FROM DUAL;
という方法もありました。こちらの方が簡単でしたね。
    • good
    • 1

こんにちは。


書式が違う?
select to_date('1-OCT-2004','DD-MM-YYYY') FROM DUAL;
でいかがでしょうか?

この回答への補足

回答ありがとうございます。
実行すると以下のようなエラーが出現しました。
「数値を指定する箇所に数値でないものが指定されています」
とありますが、OCTがマズイのでしょうか?
参考書などにはこういう記述もありますが。
よろしければ回答のほど宜しくお願い致します。

SQL> select to_date('1-OCT-2004','DD-MM-YYYY') FROM DUAL;
select to_date('1-OCT-2004','DD-MM-YYYY') FROM DUAL
*
行1でエラーが発生しました。:
ORA-01858: 数値を指定する箇所に数値でないものが指定されています

補足日時:2005/09/17 18:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す