Obtener parte de una fecha en una select error ORA-01830

alfred
12 de Septiembre del 2003
Tengo una select en la que los datos que quiero traerme son parte de un campo fecha exactamente el mes por un lado y el año por otro lado para luego meterlos separados en el group by.

Pero a realiza un to_date(campo,'MM'), to_date(campo2, 'YYYY') me da el error ORA-01830

Por favor me puede ayudar alguien?

majadito
12 de Septiembre del 2003
El error que tenes lo podes corregir de utilizando este juego de mascaras

to_char(to_date(campo, 'dd/mm/rr'),'mm')
to_char(to_date(campo2, 'dd/mm/rr'),'yyyy')

El resultado en SQL lo podes ver reemplazando tus valores tal cual esta el ejemplo a continuacion:

INCORRECTO
to_date('01/01/02', 'MM')
to_date('01/01/02', 'YYYY')

CORRECTO
to_char(to_date('01/01/02', 'dd/mm/rr'),'MM')
to_char(to_date('01/01/02', 'dd/mm/rr'),'YYYY')

sergok
12 de Septiembre del 2003
Hola,
prueba con to_char,
select to_char(sysdate,'mm') as Mes from dual;

Salu2