¿Cómo subestructurar fechas en Oracle DB? [duplicar]

Jan 23 2021

Quiero subestructurar 2 fechas (fecha actual y peluquería_fecha) para obtener el resultado de la tabla para representar los datos durante los últimos 2 años. Tengo la siguiente declaración SELECT:

SELECT count(c_id) 
  INTO counter 
  FROM RESERVATIONS r
 WHERE r.customer_id = 1 
   AND (Sysdate - r.hairdressing_date) / 365 < 2;

Es personalizado, pero no estoy seguro de la parte '/ 365' del código.

¿Cómo obtener los datos necesarios correctamente? ¿Podría escribir la implementación correcta de esta línea?

Respuestas

2 ThomasKirchhoff Jan 23 2021 at 03:05

Utilice una MONTHS_BETWEEN()función como esta:

SELECT MONTHS_BETWEEN(TRUNC(SYSDATE), TO_DATE('22.01.2019', 'DD.MM.YYYY'))/12 
  FROM DUAL;

y vuelva a este considerando su caso:

SELECT count(c_id) 
  INTO counter 
  FROM RESERVATIONS r     
 WHERE r.customer_id = 1 
   AND MONTHS_BETWEEN(TRUNC(SYSDATE), hairdressing_date)/12 < 2;