とっておきの手土産を教えて

SQL*Loaderの制御ファイル内で、
以下のような日付データを変換するにはどうしたらよいでしょうか?

・2010-12-06 00:00:00.000

以前は'2010-12-06 00:00:00'の形式だったので
"to_char(to_date(:DENPYO_DATE,'YYYY-MM-DD HH24:MI:SS'),'YYYYMMDD')"
のようにして変換が可能だったのですが、仕様変更がありましてこれに対応しなければいけなくなりました。

ちなみに安易な考えで以下のようにしたのですがさすがにだめでした...
"to_char(to_date(:DENPYO_DATE,'YYYY-MM-DD HH24:MI:SS.000'),'YYYYMMDD')"

方法をご存知の方がいれば是非、ご教示いただきたく存じます。
よろしくお願いいたします。

A 回答 (1件)

DATE型ではミリ秒を保持しないので、TO_DATE関数では変換できません。



ですので、TO_TIMESTAMP関数を使えばいいです。
>to_char(to_date(:DENPYO_DATE,'YYYY-MM-DD HH24:MI:SS.000'),'YYYYMMDD')
to_char(to_timestamp(:DENPYO_DATE,'YYYY-MM-DD HH24:MI:SS.FF3'),'YYYYMMDD')

もしくはSUBSTR関数を使って".000"を除外してもいいと思います。
to_char(to_date(substr(:DENPYO_DATE,1,19),'YYYY-MM-DD HH24:MI:SS'),'YYYYMMDD')
    • good
    • 0
この回答へのお礼

いつもありがとうございます。
おかげで無事要件を満たすことが出来ました。
ありがとうございました。

お礼日時:2011/04/22 17:18

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

このQ&Aを見た人はこんなQ&Aも見ています

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


おすすめ情報

このQ&Aを見た人がよく見るQ&A