問題:19840

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2016-3-5 19:48
junichi999  新米   投稿数: 2
現在の日付は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=日付値を設定したらエラーになり、本回答は不正解と思うのですが、違いますでしょうか?
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-3-5 21:15 | 最終変更
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
TO_DATE関数は文字値を引数として扱うので、即ちSYSDATE=日付値を設定したらエラーになり、本回答は不正解と思うのですが、違いますでしょうか?
残念ながら違いますね
実際に実行すると解説の通りエラーにならずに期待通りの結果を得ることができます。

これは「暗黙の型変換」の話ですので、19577の参考とか見てみると答えがありますよ
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-3-6 10:16
junichi999  新米   投稿数: 2
ご回答ありがとうございました。了解しました。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.