Oracle - Uso de la funcion Last_day para determinar si el año es bisiesto con Decode

   
Vista:

Uso de la funcion Last_day para determinar si el año es bisiesto con Decode

Publicado por David (5 intervenciones) el 31/03/2013 01:14:10
Buenas tengo el siguiente problema necesito usar la funcion Last_day para determinar si el año es bisiesto o no con Decode.
Estube probando con la siguiente consulta
SELECT decode(LAST_DAY(TO_date('01/02/2013','dd/mm/yyyy')),'28/02/2013','no_bisiesto','29/02/2013','bisiesto')
FROM DUAL
La misma ejecuta pero no me da ningun resultado o el mismo es null. para mi que es un problema de tipo de datos pero no se como darle la vuelta
desde ya muchas gracias:
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Uso de la funcion Last_day para determinar si el año es bisiesto con Decode

Publicado por Luis (232 intervenciones) el 01/04/2013 05:48:36
David, si dices que es de tipo de dato por que no lo resuelves, como tu mismo dices...

No puedes comparar un tipo de dato fecha con una cadena de caracteres, no es lo correcto.
Además debes revisar la sintaxis de la funcion DECODE.

Esta es la solución:

SELECT decode(LAST_DAY(TO_date('01/02/2013','dd/mm/yyyy')),
TO_DATE('28/02/2013','DD/MM/YYYY') , 'no_bisiesto', 'bisiesto')
FROM DUAL

Te recomiendo que al menos leas como es que funciona lo que vas a usar, tus preguntas son muy básicas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Uso de la funcion Last_day para determinar si el año es bisiesto con Decode

Publicado por DAVID (5 intervenciones) el 02/04/2013 03:43:39
OK GRACIAS NUEVAMENTE YO O RESOLVÍ DE ESTA FORMA ME COMPLIQUE MUCHO PERO RESULTA GRACIAS.
Select decode(to_char (last_day (TO_DATE('01/02/2013','dd/MM/YYYY')),'DD/MM/YYYY'),
'29/02/2013','bisiesto','28/02/2013','no bisiesto')"PRUEBA" from dual
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Uso de la funcion Last_day para determinar si el año es bisiesto con Decode

Publicado por Alixandro (63 intervenciones) el 10/04/2013 23:25:47
David, esta funcion resuelve tu problema. la misma la encontre escudriñando en la web.

Function AnioBisiesto(vAnio In Number) Return Boolean Is
Begin
-- A year is a leap year if it is evenly divisible by 4
-- but not if it's evenly divisible by 100
-- unless it's also evenly divisible by 400
IF mod(vAnio, 400) = 0 OR ( mod(vAnio, 4) = 0 AND mod(vAnio, 100) != 0) THEN
return TRUE;
ELSE
return FALSE;
END IF;
End AnioBisiesto;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar