es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Consulta SQL para comparar la fecha actual con los resultados coincidentes.

Tengo el requisito de verificar si la fecha de hoy es igual a la fecha de creación + 25 días. Mi DB es Oracle 11g.

Si los datos del empleado se crean el 1 de noviembre, la condición debe ser hoy = (1 de noviembre, 25).

Mi formato de fecha es 03-NOV-17 12.18.11.307000000.

Intenté esta consulta pero no funciona:

select * 
from employee 
where trunc(sysdate) = to_date(create_date, 'DD/MMM/YY') + 25;

También intenté dateadd, pero muestra un error “no reconocido”.

Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Gracias por contactarnos con su pregunta.

    Para verificar si la fecha de hoy es igual a la fecha de creación + 25 días, puede modificar su consulta para usar la función ADD_MONTHS en lugar de agregar un número fijo de días. Aquí hay un ejemplo de consulta que debería funcionar:

    SELECT *
    FROM employee
    WHERE TRUNC(SYSDATE) = TRUNC(ADD_MONTHS(TO_DATE(create_date, 'DD-MON-RR HH.MI.SS.FF'), 1)) + 25;
    

    Algunas cosas a tener en cuenta:

    • La función TO_DATE se utiliza para convertir la columna create_date de una cadena a un tipo de datos DATE adecuado.
    • La función TRUNC se utiliza para eliminar el componente de tiempo de ambas fechas para la comparación.
    • La función ADD_MONTHS se utiliza para agregar un mes a la fecha de creación, lo que efectivamente establece el día en el último día del mismo mes (NOV 30 en este caso).
    • Finalmente, se aplica TRUNC nuevamente para redondear la fecha a la medianoche antes de agregar 25 días.

    ¡Espero que esto ayude! Avíseme si tiene alguna pregunta adicional.

Comments are closed.