4

Oracle では、これは 03/01/2010 を返します。それは私には意味がありません。理由を知っている人はいますか?

SELECT TO_DATE( '2010' ,'yyyy' ) AS STRANGE_YEAR_RESULT
FROM DUAL

Oracle 10g と 11g で試しました。

4

3 に答える 3

4

Oracleでは、日付型の値フィールドに完全なDateTimeが必要です。したがって、年以外の情報は必要ないため、当月の最初の日が必要になると思いますOracleでは常にTO_DATE()およびTO_CHAR()の日付をキャストする必要があることに注意してください。そうだとすれば、オラクルはあなたが必要な情報を手に入れることを「知っている」のです。

于 2010-03-09T17:17:39.553 に答える
0

合理的な理由はないと思います。それは単に「それが何をするか」です。また、約 1 年前に OTN フォーラムでも議論されました。

于 2010-03-09T17:02:45.477 に答える
0

わかりませんが、私の推測では、月は 0 ベースなので、1 月 = 0、3 月 = 2 などです。

「10」は作成中の Y2K 問題かもしれませんが、2010 年として解釈されています。

また、日付が指定されていない場合は、おそらく月の初日と見なされます。

なぜこれをテストするのですか?この方法でコーディングすることは決してありません。

于 2010-03-09T17:04:34.657 に答える