пожалуйста, дайте мне знать проблему с помощью следующего SQL-запроса - PullRequest
1 голос
/ 25 августа 2009
SELECT pd_end_dt,nrx_cnt
FROM wkly_lnd.lnd_wkly_plan_rx_summary
WHERE pd_end_dt >TO_DATE('01/01/2009')

выдает ошибку ORA-01843: недопустимый месяц


я запустил следующее, все нормально

SELECT pd_end_dt, nrx_cnt ОТ wkly_lnd.lnd_wkly_plan_rx_summary ГДЕ pd_end_dt> '01 -Jan-09 '

но если я хочу получить недельные данные, как это сделать,

Ответы [ 4 ]

4 голосов
/ 25 августа 2009

Вы не задаете строку формата для TO_DATE . Это может привести к неправильной обработке Oracle вашей даты. Попробуйте

to_date('01/01/2009', 'DD/MM/YYYY')

вместо этого (в зависимости от того, где вы находитесь, вы можете изменить порядок DD и MM). Подробнее см. в этом описании строкового аргумента формата TO_DATE .

3 голосов
/ 25 августа 2009

1001 * попробовать *

TO_DATE('01/01/2009', 'dd/mm/yyyy')
0 голосов
/ 29 августа 2009

Есть две возможности:

  1. Функция TO_DATE не работает из-за формата даты по умолчанию (согласно другим ответам, уже приведенным здесь).

  2. Столбец pd_end_dt не является столбцом даты. Запрос пытается преобразовать значения в pd_end_dt в даты, предшествующие сравнению, и не выполняется в одной из строк.

Для демонстрации:

SQL> create table t1 (datestrings varchar2(10));
SQL> insert into t1 values ('01/01/2009');
SQL> insert into t1 values ('02/01/2009');
SQL> insert into t1 values ('01/XX/2009');
SQL> select * from t1 where datestrings > '01/01/2009';

DATESTRINGS 
-----------
02/01/2009
01/XX/2009  

2 rows selected

SQL> select * from t1 where datestrings > TO_DATE('01/01/2009');

ORA-01843: not a valid month

SQL> select * from t1 where datestrings > TO_DATE('01/01/2009','DD/MM/YYY');

ORA-01843: not a valid month
0 голосов
/ 25 августа 2009

Хорошо, чтобы не звучать резко, но сначала выполните поиск в Google. Предыдущие ответы работают, но более подробное объяснение см.

http://www.dbmotive.com/oracle_error_codes.php?errcode=01843

Если вы собираетесь использовать формат по умолчанию, как вы делаете, то вы должны выяснить, что это в первую очередь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...