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

to_dateを以下のように使用した場合、正確なdate値(2011年2月1日)を取得できるのでしょうか。

select to_date('2011/2/01','yyyy/mm/dd') from dual;

自分で検証できる環境が無い(コマンドが叩けない)ので質問させていただきました。
(できればoracle8i環境で分かると助かります。)

よろしくおねがいいたします。

A 回答 (3件)

あぁ。

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

おはようございます。



>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の書き方ではないのですが回答になっていますでしょうか?
    • good
    • 0

可能です。


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

ご教授ありがとうございました。
ちなみに、下記SQLでは真が返るのでしょうか。

select date型(2011/01/31 00:00:00) < to_date('2011/2/01','yyyy/mm/dd') from dual;

何分中途半端な知識で的外れな質問をしているかもしれませんが、ご回答頂けたら幸いです。
よろしくお願いいたします。

お礼日時:2011/02/10 08:30

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

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