#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;
Для меня это похоже на ошибку…