sql >> Base de Datos >  >> RDS >> Oracle

Oracle - Obtener datos del año pasado (Dinámico)

Puede usar sysdate - interval '1' year para representar la fecha de hoy hace un año:

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

Como @Wernfried señaló correctamente a continuación, lo anterior fallaría el 29 de febrero en un año bisiesto. En su lugar, utilice esta solución alternativa:

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