Comment sous-construire des dates dans Oracle DB? [dupliquer]
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
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;