Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle - Ottieni dati dall'anno passato (Dynamic)

Puoi usare sysdate - interval '1' year per rappresentare la data odierna di un anno fa:

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

Come @Wernfried ha correttamente sottolineato di seguito, quanto sopra fallirebbe per il 29 febbraio in un anno bisestile. Invece, usa questa soluzione alternativa:

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