C#,Delphi,Oracle,MSSQL 개발자블로그

[Oracle] 날짜타입의 년도표시 Y와 R 의 차이점. 본문

Programming/Oracle

[Oracle] 날짜타입의 년도표시 Y와 R 의 차이점.

19760323 2017. 5. 19. 17:55
rrrr 과 yyyy 는 어차피 연도 4자리 꽉 채웠으므로 차이 없다고 봐도 무방합니다.
단, 2자리 표시형식인 rr 과 yy 는 연도 앞 두자리가 생략되어 그 의미가 다릅니다.
R은 ROUND 의 의미를 가지고 있습니다.
연도를 반올림하는데 100년 단위로 계산합니다.
 - 50년 이상이면 1950 ==> 2000
 - 50년 미만이면 1949 ==> 1900
현재년도가 2014년이므로 반올림한 2000 년이 기준이 됩니다.
이 때 입력되는 두자리 연도값이
 - 50 미만이면 TO_DATE('140101', 'rrmmdd') ==> 2014-01-01 (기준년도)
 - 50 이상이면 TO_DATE('940101', 'rrmmdd') ==> 1994-01-01 (기준년도 전년도)
현재년도가 2014년이 아닌 2054년에 같은 구문을 실행하면
 - 기준년도는 2100 년이 되고 결과가 달라집니다.
 - TO_DATE('140101', 'rrmmdd') ==> 2114-01-01 (기준년도)
 - TO_DATE('940101', 'rrmmdd') ==> 2094-01-01 (기준년도 전년도)
연도는 반드시 2자리가 아닌 4자리로 관리해서 오해의 소지가 없도록 해야겠습니다.

 

[출처] http://database.sarang.net/?criteria=oracle&subcrit=qna&inc=read&aid=40549

Comments