오라클에서 왜 이것이 3 월 1 일에 돌아 오는가?
-
18-09-2019 - |
문제
Oracle에서 이것은 2010 년 3 월 1 일에 반환됩니다. 그것은 나에게 의미가 없습니다. 왜 그런지 아는 사람 있나요?
SELECT TO_DATE( '2010' ,'yyyy' ) AS STRANGE_YEAR_RESULT
FROM DUAL
나는 Oracle 10G와 11G에서 시도했습니다.
해결책
Oracle은 날짜 유형 값 필드에 완전한 DateTime이 필요하므로 첫날이 필요합니다. 현재의 달, 나는 당신이 연도 외에 다른 정보가 필요하지 않기 때문에 추측 할 것입니다. Oracle에서 항상 to_date () 및 to_char () 날짜를 통해 캐스트해야합니다. 그렇게 가정하면, Oracle은 필요한 정보를 얻을 수 있다는 것을 "알고 있습니다".
다른 팁
나는 현명한 이유가 없다고 생각합니다. 그것은 단지 "그것이하는 일"입니다. 또한 논의되었습니다 OTN 포럼에서 약 1 년 전에.
모르지만, 내 추측은 몇 달이 0을 기반으로하므로 Jan = 0, 3 월 = 2 등입니다.
"10"은 제작에서 Y2K 문제 일 수 있지만 2010 년으로 해석되고 있습니다.
그리고 월의 날이 주어지지 않으면 아마도 월의 첫날을 가정 할 것입니다.
왜 이것을 테스트합니까? 당신은 이런 식으로 코딩하고 싶지 않을 것입니다.
제휴하지 않습니다 StackOverflow