Consulta con fecha
Hi people,
a ver si me explico... tengo una columna en la que lo que se guarda puede ser o no una fecha, quién la creo en su momento debÃa ver doble pq ahora me trae por la calle de la amargura.
De ser una fecha se guarda en formato yyyymmdd, necesito sacar las filas en las que el campo tiene una fecha realmente y no me puedo crear ninguna función, por aquà serÃa lo más fácil pero no me dejan crear funciones. ¿Alguna idea feliz?
Gracias
a ver si me explico... tengo una columna en la que lo que se guarda puede ser o no una fecha, quién la creo en su momento debÃa ver doble pq ahora me trae por la calle de la amargura.
De ser una fecha se guarda en formato yyyymmdd, necesito sacar las filas en las que el campo tiene una fecha realmente y no me puedo crear ninguna función, por aquà serÃa lo más fácil pero no me dejan crear funciones. ¿Alguna idea feliz?
Gracias
Aunque me parezca un poco animalada y ya que no puedes crearte funciones....
SELECT TO_DATE(NOMBRE_CAMPO_RARO, 'YYYYMMDD')
FROM NOMBRE_TABLA_RARA
WHERE LENGTH(NOMBRE_CAMPO_RARO) = 8
AND TO_NUMBER(SUBSTR(NOMBRE_CAMPO_RARO, 5 , 2)) >= 1
AND TO_NUMBER(SUBSTR(NOMBRE_CAMPO_RARO, 5 , 2)) <= 12
AND TO_NUMBER(SUBSTR(NOMBRE_CAMPO_RARO, 7 , 2)) <= DECODE(SUBSTR(NOMBRE_CAMPO_RARO, 5 , 2), '01', 31, '02', DECODE(ROUND(TO_NUMBER(SUBSTR(NOMBRE_CAMPO_RARO, 1 , 4)) / 4, 2), ROUND(TO_NUMBER(SUBSTR(NOMBRE_CAMPO_RARO, 1 , 4)) / 4, 0), 29, 28), '03', 31, '04', 30, '05', 31, '06', 30, '07', 31, '08', 31, '09', 30, '10', 31, '11', 30, '12', 31)
Curiosa consultita te va a quedar, jajajaj,
Saludos.
SELECT TO_DATE(NOMBRE_CAMPO_RARO, 'YYYYMMDD')
FROM NOMBRE_TABLA_RARA
WHERE LENGTH(NOMBRE_CAMPO_RARO) = 8
AND TO_NUMBER(SUBSTR(NOMBRE_CAMPO_RARO, 5 , 2)) >= 1
AND TO_NUMBER(SUBSTR(NOMBRE_CAMPO_RARO, 5 , 2)) <= 12
AND TO_NUMBER(SUBSTR(NOMBRE_CAMPO_RARO, 7 , 2)) <= DECODE(SUBSTR(NOMBRE_CAMPO_RARO, 5 , 2), '01', 31, '02', DECODE(ROUND(TO_NUMBER(SUBSTR(NOMBRE_CAMPO_RARO, 1 , 4)) / 4, 2), ROUND(TO_NUMBER(SUBSTR(NOMBRE_CAMPO_RARO, 1 , 4)) / 4, 0), 29, 28), '03', 31, '04', 30, '05', 31, '06', 30, '07', 31, '08', 31, '09', 30, '10', 31, '11', 30, '12', 31)
Curiosa consultita te va a quedar, jajajaj,
Saludos.
