Ошибка Oracle to_char

#sql #oracle #date #format #to-char

#sql #Oracle #Дата #формат #to-char

Вопрос:

Я не знаю, ошибка это или что, но когда я пытаюсь определенным образом отформатировать день недели с помощью функции to_char в Oracle, SQL Plus выдает мне эту ошибку: ORA-01821: формат даты не распознан

Вот строка, которая вызывает проблему

 SELECT TO_CHAR(sysdate,'dsp') from dual;
  

Таким образом, d означает «День недели», а sp — для заклинания.
В этой строке должно быть напечатано пять, потому что мы в четверг.

Это странно, потому что эта следующая строка сработала

 SELECT TO_CHAR(sysdate,'ddsp') from dual;
  

dd означает «День месяца», поэтому sql plus напечатал двадцать девять без каких-либо проблем!!

Может кто-нибудь сказать мне, почему эта строка не работает?

Спасибо..

Комментарии:

1. Я использую Oracle 10G express 🙂

2. Опция sp, в которой это прописано, была для меня новой, поэтому я решил попробовать ее. В Oracle 9i Enterprise 9.2.0.7.0 «выберите to_char(sysdate, ‘dsp’) из dual;» дает ожидаемый результат. К сожалению, я не знаю, почему у вас это не работает.

3. Для меня работает нормально (11.2)

4. Я использую Oracle 10G enterprise (10.2.0.3.0) и получаю то же поведение, что и ты, Джоэл

5. @maz, не всегда немедленный вариант 😉

Ответ №1:

Если вы должны заставить это работать, вот уродливый обходной путь:

 SELECT to_char(to_date(to_char(SYSDATE,'d'),'j'),'jsp') FROM dual;
  

Для меня это похоже на ошибку…