Como comparar fechas contra sysdate

Hola,
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?
Muchas gracias de antemano.
Saludos,

2 respuestas

1
Respuesta de
Hay varias soluciones.
Podrías por ejemplo hacer to_char(fecha_cumple,'DDMM')=to_char(sysdate,'DDMM')
Añade un comentario a esta respuesta
1
Respuesta de
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')
Espero te ayude
Éxitos
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje