sql oralce ошибка - формат даты не распознан
select TO_CHAR(sysdate, 'DD-MON-YYYY HH24:MI:SSxFF') from dual;
Вот запрос, кусок TO_CHAR(sysdate, 'DD-MON-YYYY HH24:MI:SSxFF') просто с документации скопировал, заменив только на sysdate не работает. Как это вообще возможно?
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
Спецификатор формата FF (дробные доли секунды) применим только к типу данных TIMESTAMP (именно такой тип имеет поле таблицы в тексте документации) и неприменим к типу данных DATETIME (именно такой тип данных возвращает функция SYSDATE).
select TO_CHAR(sysdate, 'DD-MON-YYYY HH24:MI:SSxFF') from dual;ORA-01821: date format not recognized
select TO_CHAR(sysdate, 'DD-MON-YYYY HH24:MI:SSxFF3') from dual;ORA-01821: date format not recognized
select TO_CHAR(sysdate, 'DD-MON-YYYY HH24:MI:SS') from dual;| TO_CHAR(SYSDATE,'DD-MON-YYYYHH24:MI:SS') | | :--------------------------------------- | | 14-MAY-2020 06:03:03 |
select TO_CHAR(CAST(sysdate AS TIMESTAMP), 'DD-MON-YYYY HH24:MI:SSxFF') from dual;| TO_CHAR(CAST(SYSDATEASTIMESTAMP),'DD-MON-YYYYHH24:MI:SSXFF') | | :----------------------------------------------------------- | | 14-MAY-2020 06:03:03.000000 |
select TO_CHAR(CAST(sysdate AS TIMESTAMP), 'DD-MON-YYYY HH24:MI:SSxFF3') from dual;| TO_CHAR(CAST(SYSDATEASTIMESTAMP),'DD-MON-YYYYHH24:MI:SSXFF3') | | :------------------------------------------------------------ | | 14-MAY-2020 06:03:03.000 |
select TO_CHAR(systimestamp, 'DD-MON-YYYY HH24:MI:SSxFF') from dual;| TO_CHAR(SYSTIMESTAMP,'DD-MON-YYYYHH24:MI:SSXFF') | | :----------------------------------------------- | | 14-MAY-2020 06:03:03.906859 |
db<>fiddle here
Обрати внимание - SYSDATE не возвращает дробные доли секунды вообще.