por favor hágamelo saber el tema con consulta SQL siguiente
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:
-
La función TO_DATE está fallando debido al formato de fecha por defecto (según otras respuestas ya dadas aquí).
-
El
pd_end_dt
columna no es una columna de fecha. La consulta está tratando de convertir los valores enpd_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