• 締切済み

Oracle to_dateのyyyy/mm/dd

to_dateを以下のように使用した場合、正確なdate値(2011年2月1日)を取得できるのでしょうか。 select to_date('2011/2/01','yyyy/mm/dd') from dual; 自分で検証できる環境が無い(コマンドが叩けない)ので質問させていただきました。 (できればoracle8i環境で分かると助かります。) よろしくおねがいいたします。

みんなの回答

  • a_ka_
  • ベストアンサー率16% (1/6)
回答No.3

あぁ。。。すみません。 'True'と'False'の記載が反対、もしくは B - A の記載、でした。

  • a_ka_
  • ベストアンサー率16% (1/6)
回答No.2

おはようございます。 >select date型(2011/01/31 00:00:00) < to_date('2011/2/01','yyyy/mm/dd') from dual についてですがこのSQLは実行できません。 実際に流したSQLは下記の通り == select to_date('2011/01/31','yyyy/mm/dd') < to_date('2011/02/01','yyyy/mm/dd') from dual; 行1でエラーが発生しました。: ORA-00923: FROMキーワードが指定の位置にありません。 == 条件を戻り値(結果)に入れられてもどうしたらいいか分からないといったところでしょうか。 SQLを考えるときにどういう答えが欲しいかを提示してあげないといけないかと思います。 たとえば・・・ SELECT A, B, CASE WHEN A - B >= 0 THEN 'True' WHEN A - B < 0 THEN 'False' END AS 判定 FROM ( SELECT TO_DATE('2011/01/31','yyyy/mm/dd') AS A, TO_DATE('2011/02/01','yyyy/mm/dd') AS B FROM DUAL ) ; A     B     判定 ___________________ 2011/01/31 2011/02/01 False 上記のような結果が返ってきます。 あまり上手なSQLの書き方ではないのですが回答になっていますでしょうか?

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

可能です。 テーブル T ( dt date ) がある時 INSERT INTO T SELECT select to_date('2011/2/01','yyyy/mm/dd') from dual; は正常終了し、フィールドには「2011/2/01 00:00:00,」が格納されます。

papaya20111
質問者

お礼

ご教授ありがとうございました。 ちなみに、下記SQLでは真が返るのでしょうか。 select date型(2011/01/31 00:00:00) < to_date('2011/2/01','yyyy/mm/dd') from dual; 何分中途半端な知識で的外れな質問をしているかもしれませんが、ご回答頂けたら幸いです。 よろしくお願いいたします。

関連するQ&A