powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Дата select
10 сообщений из 10, страница 1 из 1
Дата select
    #39325074
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, коллеги!
Нужна ваша помощь.
Стандартный пример из доки оракла
Код: plsql
1.
2.
SELECT TO_CHAR(TO_DATE('27-OCT-17', 'DD-MON-RR') ,'YYYY') "Year"
   FROM DUAL; 


Ошибка:
Код: plsql
1.
ora-01843 not a valid month



В конечном счете необходимо записать в базу данные типа: 01-Sep-10

Спасибо!
...
Рейтинг: 0 / 0
Дата select
    #39325096
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipok,

Ну а что ты хотел, документация то американская, а компьютер, видимо, русский.
NLS
...
Рейтинг: 0 / 0
Дата select
    #39325098
Futbolist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadipok,

Скорее всего, у тебя русский язык в базе стоит, надо ОКТ вместо ОСТ.

Попробуй
Код: plsql
1.
2.
SELECT TO_CHAR(TO_DATE('27-ОКТ-17', 'DD-MON-RR') ,'YYYY') "Year"
   FROM DUAL;         



См. https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i170559

Datetime Format Elements and Globalization Support
...
Рейтинг: 0 / 0
Дата select
    #39325101
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|vadipok,

Ну а что ты хотел, документация то американская, а компьютер, видимо, русский.
NLS

Воистину.
NLS_DATE_FORMAT=DD-MON-RR;
NLS_LANG=RUSSIAN_RUSSIA.CL8MSWIN1251;

Что делать то дальше?
...
Рейтинг: 0 / 0
Дата select
    #39325103
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Futbolistvadipok,

Скорее всего, у тебя русский язык в базе стоит, надо ОКТ вместо ОСТ.

Попробуй
Код: plsql
1.
2.
SELECT TO_CHAR(TO_DATE('27-ОКТ-17', 'DD-MON-RR') ,'YYYY') "Year"
   FROM DUAL;         



См. https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i170559

Datetime Format Elements and Globalization Support

Код: sql
1.
SELECT 111 FROM DUAL where '27-ОКТ-17' = TO_DATE('27.10.2017', 'DD.MM.YYYY'); 



Что делать то?
Не хотелось бы менять СУБД, нельзя на время одного инсерта это сделать американским?
...
Рейтинг: 0 / 0
Дата select
    #39325106
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipokВ конечном счете необходимо записать в базу данные типа: 01-Sep-10RTFM Datetime Literals (FAQ)
...
Рейтинг: 0 / 0
Дата select
    #39325115
Futbolist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНе хотелось бы менять СУБД, нельзя на время одного инсерта это сделать американским?

Так пойдет?

Код: plsql
1.
2.
SELECT TO_CHAR(TO_DATE('27-OCT-17', 'DD-MON-RR', 'NLS_DATE_LANGUAGE = American') ,'YYYY') "Year"
   FROM DUAL; 
...
Рейтинг: 0 / 0
Дата select
    #39325120
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipokAlexFF__|vadipok,

Ну а что ты хотел, документация то американская, а компьютер, видимо, русский.
NLS

Воистину.
NLS_DATE_FORMAT=DD-MON-RR;
NLS_LANG=RUSSIAN_RUSSIA.CL8MSWIN1251;

Что делать то дальше?
Внимательно читаем доку:
TO_CHAR
дока
Код: plsql
1.
TO_DATE(char[[,fmt],'nlsparam'])


...
The 'nlsparam' argument specifies the language of the text string that is being converted to a date. This argument can have this form:

Код: plsql
1.
'NLS_DATE_LANGUAGE = language' 





Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> host echo $NLS_LANG;
RUSSIAN_RUSSIA.UTF8

SQL> select sysdate from dual;

SYSDATE
--------
12.10.16

SQL> SELECT TO_CHAR(TO_DATE('27-OCT-17', 'DD-MON-RR') ,'YYYY') "Year" from dual;
SELECT TO_CHAR(TO_DATE('27-OCT-17', 'DD-MON-RR') ,'YYYY') "Year" from dual
                       *
ERROR at line 1:
ORA-01843: месяц неверен

SQL> SELECT TO_CHAR(TO_DATE('27-OCT-17', 'DD-MON-RR','NLS_DATE_LANGUAGE = American'), 'YYYY') as "Year" from dual;

Year
------------
2017
...
Рейтинг: 0 / 0
Дата select
    #39325135
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все понял!

Спасибо большое всем!
Огромные респектование вам выражаю.
Без вас сидел бы неделю.
...
Рейтинг: 0 / 0
Дата select
    #39325221
Ли Терал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadipokНе хотелось бы менять СУБДну вот. обломилось, значит будут еще такие же бесценные темы.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Дата select
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]