如何从表中提取过去两年的数据?
当前的尝试无法识别“DATEADD”:
select *
from TABLE
where EVENTDATE >= DATEADD(year, -1, GETDATE())
Run Code Online (Sandbox Code Playgroud)
PL/SQL 建议使用 Oracle。正确的逻辑是:
where eventdate >= sysdate - interval '2' year
Run Code Online (Sandbox Code Playgroud)
一般来说,Oracle 对区间运算很挑剔,add_months()这是一个好习惯:
where eventdate >= add_months(sysdate, -24)
Run Code Online (Sandbox Code Playgroud)
当然,这取决于你所说的“2年”是什么意思。如果您的意思是自上一日历年 1 月 1 日起:
where eventdate >= trunc(sysdate, 'YYYY') - interval '1' year
Run Code Online (Sandbox Code Playgroud)
从1月1日减去一年是没有问题的。