Pregunta

SELECT pd_end_dt,nrx_cnt
FROM wkly_lnd.lnd_wkly_plan_rx_summary
WHERE pd_end_dt >TO_DATE('01/01/2009')

Se trata de dar error ORA-01843: no válido un mes


me encontré el siguiente lo hizo bien

SELECT pd_end_dt, nrx_cnt DE wkly_lnd.lnd_wkly_plan_rx_summary DONDE pd_end_dt> '01-enero-09'

pero si quiero tener la semana sabia datos de cómo hacer dat

No hay solución correcta

Otros consejos

No se está dando una cadena de formato a TO_DATE . Esto podría causar Oracle para manejar su fecha equivocada. Trate

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

en vez (dependiendo de donde usted está, es posible que desee cambiar el orden de DD y MM). Ver esta descripción del formato TO_DATE cadena del argumento para más detalles.

try

TO_DATE('01/01/2009', 'dd/mm/yyyy')

Ok no sonar duro, pero hacer una búsqueda de Google en primer lugar. Las respuestas anteriores funcionan, pero para una explicación más comlete ver

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

Si va a utilizar el formato predeterminado como que está haciendo, entonces usted debe saber lo que es el primero

Hay dos posibilidades:

  1. La función TO_DATE está fallando debido al formato de fecha por defecto (según otras respuestas ya dadas aquí).

  2. El pd_end_dt columna no es una columna de fecha. La consulta está tratando de convertir los valores en pd_end_dt a fechas anteriores a la comparación, y en su defecto en una de las filas.

Para demostrar:

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top