Como comparar fechas contra sysdate

Necesito hacer un query que me despliegue los clientes que cumplen el día de hoy, para el envío de tarjetas de cumpleaños. Como puedo hacer la comparación de las fechas, ¿debo comparar las fechas de nacimiento contra el sysdate? ¿Cómo lo hago?

2 respuestas

Respuesta
2
Hay varias soluciones.
Podrías por ejemplo hacer to_char(fecha_cumple,'DDMM')=to_char(sysdate,'DDMM')
Respuesta
2
Eso de comparar fechas a veces es un dolor de cabeza por los parametros de session, una opcion es verificar previo a tu consulta que formato de fecha esta utilizando tu sesion, esto lo puedes hacer haciendo un simple;
select sysdate from dual;
Y luego das el formato a la fecha de consulta.
Para el caso de fechas de cumpleaños por ejemplo, al menos en nuestra base solo se guarda la fecha sin horas, por lo que una buena forma de realizar tu búsqueda es truncar la fecha, por ejemplo:
SELECT * FROM CLIENTES WHERE TRUNC(<campo_de_fecha>)=TRUNC(SYSDATE);
Si aun así te da problemas, y te digo porque me ha pasado, lo que realizo personalmente es convertir las fechas a carácter y así me aseguro de consultar lo que quiero, de esta forma:
SELECT * FROM CLIENTES WHERE TO_CHAR(<campo_de_fecha>,'DD/MM/YYYY')=TO_CHAR(SYSDATE,'DD/MM/YYYY')

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas