Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle - Obtenir les données de l'année précédente (Dynamique)

Vous pouvez utiliser sysdate - interval '1' year pour représenter la date d'aujourd'hui il y a un an :

SELECT userID, COUNT(userID) AS count
FROM BookingTable 
WHERE Timebooked BETWEEN SYSDATE - INTERVAL '1' year AND SYSDATE
GROUP BY userID
HAVING COUNT(userID) > 2

Comme @Wernfried l'a correctement souligné ci-dessous, ce qui précède échouerait pour le 29 février d'une année bissextile. Utilisez plutôt cette solution :

WHERE Timebooked BETWEEN ADD_MONTHS(SYSDATE, -12) AND SYSDATE