Oracle: Как изменить следующий запрос SQL, чтобы он возвращал 1900 вместо 2000? - PullRequest
0 голосов
/ 10 июля 2020

Как изменить следующий запрос, чтобы он возвращал 1900 вместо 2000?

SELECT TO_CHAR(TO_DATE('27-OCT-00', 'DD-MON-RR') ,'YYYY') "Year"
   FROM DUAL; 

Как значения обрабатываются в 1900 и 2000.

Также предположим, что я сохраню ddmmyy как 190700. Как это будет oracle знаете, что это 1900 или 2000?

1 Ответ

2 голосов
/ 10 июля 2020

Вычтите 100 лет.

SQL> select to_char(add_months(to_date('27-OCT-00', 'dd-mon-rr'), -12 * 100), 'yyyy') l_year from dual;

L_YE
----
1900

SQL>

Как oracle узнает, что это 1900 или 2000?

Не будет; как это могло? Используйте 4 цифры для года, и у вас не будет проблем.

...