Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle - Obter dados do ano passado (Dinâmico)


Você pode usar sysdate - interval '1' year para representar a data de hoje há um ano:
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 apontou corretamente abaixo, o acima falharia em 29 de fevereiro em um ano bissexto. Em vez disso, use esta solução alternativa:
WHERE Timebooked BETWEEN ADD_MONTHS(SYSDATE, -12) AND SYSDATE