Comment sous-construire des dates dans Oracle DB? [dupliquer]

Jan 23 2021

Je veux sous-structurer 2 dates (date actuelle et date_de coiffure) pour obtenir le résultat de la table pour représenter les données des 2 dernières années. J'ai l'instruction SELECT suivante:

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

C'est personnalisé, mais je ne suis pas sûr de la partie du code «/ 365».

Comment obtenir correctement les données nécessaires? Pourriez-vous écrire l'implémentation correcte de cette ligne?

Réponses

2 ThomasKirchhoff Jan 23 2021 at 03:05

Veuillez utiliser une MONTHS_BETWEEN()fonction comme celle-ci:

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

et revenez à celui-ci en tenant compte de votre cas:

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