SQL拉近两年数据

Seb*_*ard 3 sql plsql

如何从表中提取过去两年的数据?

当前的尝试无法识别“DATEADD”:

select * 
from TABLE 
where EVENTDATE >= DATEADD(year, -1, GETDATE())
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 6

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日减去一年是没有问题的。