問題:19840
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
問題:19840
msg# 1
ゲスト
投稿数: 0
現在の日付は2012年06月23日です。
1999年4月1日から現在までの日数を求めるには、どのSQL文を実行しますか(該当するものをすべて選択してください)。
ただし、実行環境は英語環境とし、デフォルトの日付の表示形式は「RR-MM-DD」とします。
に対し、
○ SELECT TO_DATE(SYSDATE, 'RR-MM-DD') - TO_DATE('99-04-01', 'RR-MM-DD') FROM dual;
が正解として挙げられていますが、前半の
TO_DATE(SYSDATE, 'RR-MM-DD') について、
TO_DATE関数は文字値を引数として扱うので、即ちSYSDATE=日付値を設定したらエラーになり、本回答は不正解と思うのですが、違いますでしょうか?
1999年4月1日から現在までの日数を求めるには、どのSQL文を実行しますか(該当するものをすべて選択してください)。
ただし、実行環境は英語環境とし、デフォルトの日付の表示形式は「RR-MM-DD」とします。
に対し、
○ SELECT TO_DATE(SYSDATE, 'RR-MM-DD') - TO_DATE('99-04-01', 'RR-MM-DD') FROM dual;
が正解として挙げられていますが、前半の
TO_DATE(SYSDATE, 'RR-MM-DD') について、
TO_DATE関数は文字値を引数として扱うので、即ちSYSDATE=日付値を設定したらエラーになり、本回答は不正解と思うのですが、違いますでしょうか?
Re: 問題:19840
msg# 1.1
ゲスト
投稿数: 0
引用:残念ながら違いますね 
実際に実行すると解説の通りエラーにならずに期待通りの結果を得ることができます。
これは「暗黙の型変換」の話ですので、19577の参考とか見てみると答えがありますよ
TO_DATE関数は文字値を引数として扱うので、即ちSYSDATE=日付値を設定したらエラーになり、本回答は不正解と思うのですが、違いますでしょうか?

実際に実行すると解説の通りエラーにならずに期待通りの結果を得ることができます。
これは「暗黙の型変換」の話ですので、19577の参考とか見てみると答えがありますよ

Re: 問題:19840
msg# 1.2
ゲスト
投稿数: 0
ご回答ありがとうございました。了解しました。