Если первые 2 цифры года не указаны в конвертируемой дате:
- ГГГГ всегда будет возвращать текущий год.
- RRRR возвращает год на основе текущего указанного года в базе данных.
Попробуйте этот пример кода:
SELECT TO_DATE ('010199', 'MMDDYYYY') AS date_a,
TO_DATE ('010199', 'MMDDYY') AS date_b,
TO_DATE ('010199', 'MMDDRR') AS date_c,
TO_DATE ('010199', 'MMDDRRRR') AS date_d
FROM DUAL;
Результаты при запуске 01.12.2014:
DATE_A DATE_B DATE_C DATE_D
--------- --------- --------- ---------
1/1/0099 1/1/2099 1/1/1999 1/1/1999
Этот оракул ссылка дает отличное описание и примеры.
Из вышеуказанного ссылка :
- Если указанный двузначный год - от 00 до 49, то
- Если последние две цифры текущего года - от 00 до 49, то возвращаемый год имеет те же первые две цифры, что и текущий год.
- Если последние две цифры текущего года составляют от 50 до 99, то первые 2 цифры возвращаемого года на 1 больше, чем первые 2 цифры текущего года.
- Если указанный двузначный год составляет от 50 до 99, то
- Если последние две цифры текущего года - от 00 до 49, то первые 2 цифры возвращаемого года на 1 меньше первых 2 цифр текущего года.
- Если последние две цифры текущего года - от 50 до 99, то возвращаемый год имеет те же первые две цифры, что и текущий год.