Como comparar fechas contra sysdate

Respuesta de
a
Usuario
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,
Avatar
Experto
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
Usuario
Muchas gracias por la respuesta. Me fue de mucha ayuda.
Saludos,