Come sottostrutturare i datteri in Oracle DB? [duplicare]
Voglio sottostruire 2 date (data corrente e data_hairressing) per ottenere il risultato dalla tabella per rappresentare i dati degli ultimi 2 anni. Ho la seguente istruzione SELECT:
SELECT count(c_id)
INTO counter
FROM RESERVATIONS r
WHERE r.customer_id = 1
AND (Sysdate - r.hairdressing_date) / 365 < 2;
È personalizzato, ma non sono sicuro della parte "/ 365" del codice.
Come ottenere correttamente i dati necessari? Potresti scrivere la corretta implementazione di questa riga?
Risposte
2 ThomasKirchhoff
Si prega di utilizzare una MONTHS_BETWEEN()
funzione come questa:
SELECT MONTHS_BETWEEN(TRUNC(SYSDATE), TO_DATE('22.01.2019', 'DD.MM.YYYY'))/12
FROM DUAL;
e torna a questo considerando il tuo caso:
SELECT count(c_id)
INTO counter
FROM RESERVATIONS r
WHERE r.customer_id = 1
AND MONTHS_BETWEEN(TRUNC(SYSDATE), hairdressing_date)/12 < 2;