从sql中的当前日期获取最近90天的记录

Ana*_*nas 1 sql oracle date

您好我使用以下查询从当前日期过去90天检索记录,但它无法正常工作.请帮我.

SELECT * 
FROM adhoc_request 
WHERE DATEDIFF(("d", Crdate, current_date()) < 90);
Run Code Online (Sandbox Code Playgroud)

Ric*_*iwi 7

SELECT * 
FROM adhoc_request 
WHERE Crdate >= sysdate-90
Run Code Online (Sandbox Code Playgroud)

SYSDATE包括时间部分,例如"04-13-2013 09:45:51"

因此,实际上,在"04-13-2013 09:45:51"上运行的查询转换为

WHERE Crdate >= "2013-01-13 09:45:51"
Run Code Online (Sandbox Code Playgroud)

大卫的建议工作更加可预测,并且在大多数情况下更正确,首先截断SYSDATE以便在退出90天之前返回今天的日期,即

SELECT * 
FROM adhoc_request 
WHERE Crdate >= TRUNC(sysdate)-90
Run Code Online (Sandbox Code Playgroud)