У меня есть вопрос о выборе года из даты. Это находится в Oracle базе данных 12 c.
Учитывая, что SELECT trunc(SYSDATE) FROM DUAL;
возвращает 02/06/2020
Они работают правильно и возвращают текущий год 2020
-
SELECT EXTRACT(YEAR FROM trunc(SYSDATE)) FROM DUAL;
SELECT TO_CHAR(trunc(SYSDATE,'YYYY')) FROM DUAL;
Они не работают и выдают ошибку -
SELECT EXTRACT(YEAR FROM '02/06/2019') FROM DUAL;
Дает ошибку: ORA-30076: invalid extract field for extract source
SELECT TO_CHAR('02/06/2019','YYYY') FROM DUAL;
Дает ошибку: ORA-01722: invalid number
То же самое формат передается с sysdate и жестко закодированной датой 02/06/2019. Почему один работает, а другой нет?
Я знаю, что мог бы просто select 2019 from dual
, но здесь дело не в этом.