В чем разница между маской даты оракула «yy» и «rr»?

Пример:

select ename from emp where hiredate = todate('01/05/81','dd/mm/yy') 

и

select ename from emp where hiredate = todate('01/05/81','dd/mm/rr') 

вернуть разные результаты

9X_oracle

28
0
4
Общее количество ответов: 4

Ответ #1

Ответ на вопрос: В чем разница между маской даты оракула «yy» и «rr»?

http://oracle.ittoolbox.com/groups/technical-functional/oracle-dev-l/difference-between-yyyy-and-rrrr-format-519525

YY позволяет получить только две цифры года, например, 99 9X_sql в 1999. Остальные цифры (19) автоматически 9X_sql-select присваиваются текущему век. RR преобразует 9X_sql годы с двумя цифрами в годы с четырьмя цифрами 9X_sqlselect путем округления.

50–99 сохраняются как 1950–1999, а 9X_sql-statement даты, заканчивающиеся на 00–49, сохраняются 9X_sql-syntax как 2000-2049 гг. RRRR принимает четырехзначный 9X_sqlselect ввод (хотя и не требуется), и преобразует 9X_sql-statement двузначные даты, как это делает RR. YYYY 9X_sql-statement принимает 4-значный ввод, но не сделать 9X_oracle любую конвертацию даты

По сути, ваш первый 9X_sqlselect пример предполагает, что 81 — это 2081 год, а 9X_sql RR — 1981 год. Таким образом, первый пример 9X_sql-query не должен возвращать никаких строк, так 9X_sqlselect как вы, скорее всего, не нанимали людей 9X_sql-query после 1 мая 2081 года :-)

47
0

Ответ #2

Ответ на вопрос: В чем разница между маской даты оракула «yy» и «rr»?

y2k совместимость. rr предполагает, что 9X_sqlselect 01 соответствует 2001, yy предполагает, что 9X_sqlselect 01 соответствует 1901

см.: http://www.oradev.com/oracle_date_format.jsp

изменить: черт! michael "quickfingers" stum beat me to it!

/ тр

5
0

Ответ #3

Ответ на вопрос: В чем разница между маской даты оракула «yy» и «rr»?

@Michael Stum

Мой последний опыт работы с Oracle был 9X_sql немного давным-давно

ммм, это было до 2000 9X_sql-select года? :р

...

Будет ли yy всегда принимать 9X_sql-select 19xx?

according to your source получаем следующие сценарии:

USING ENTERED STORED SELECT of date column YY 22-FEB-01 22-FEB-1901 22-FEB-01 YYYY 22-FEB-01 22-FEB-0001 22-FEB-0001 RR 22-FEB-01 22-FEB-2001 22-FEB-01 RRRR 22-FEB-01 22-FEB-2001 22-FEB-2001 

/ тр

5
0

Ответ #4

Ответ на вопрос: В чем разница между маской даты оракула «yy» и «rr»?

RR отображает четыре цифры как 1999 или 9X_sql-query 2015 (если <49, будет считаться 20 век)

1
0