您好,我正在使用以下查询从当前日期检索最近90天的记录,但它不起作用。请帮帮我。从sql当前日期获取最近90天的提取记录
SELECT *
FROM adhoc_request
WHERE DATEDIFF(("d", Crdate, current_date()) < 90);
您好,我正在使用以下查询从当前日期检索最近90天的记录,但它不起作用。请帮帮我。从sql当前日期获取最近90天的提取记录
SELECT *
FROM adhoc_request
WHERE DATEDIFF(("d", Crdate, current_date()) < 90);
请尝试以下查询甲骨文
SELECT
*
FROM
adhoc_request
WHERE
trunc(sysdate-Crdate)<90
select *
from adhoc_request
where Crdate < DATEADD("d", -90, current_date()) < 90);
一些注意事项:
DATEADD在Oracle中不可用 - SQL标记不*表示SQL服务器的问题。 – 2013-05-10 12:01:11
对不起,如果我的评论冒犯了你 - 但DATEADD()*是一个SQL服务器函数(而CURRENT_DATE显然是MySQL),所以我认为你的解决方案只是SQL服务器。 – 2013-05-10 12:53:47
我确实认为MySQL但MySQL使用DATE_ADD。我没有检查语法。我在方言之间混淆有时 – gbn 2013-05-10 13:18:46
SELECT *
FROM adhoc_request
WHERE Crdate >= sysdate-90
SYSDATE包括时间部分,例如“2013年4月13日9点45分51秒”
因此,实际上,查询上运行的“2013年4月13日9点45分51秒”转换为
WHERE Crdate >= "2013-01-13 09:45:51"
大卫的建议,工作更具有可预见性而且在大多数情况下更正确,这首先截断SYSDATE服用90天关闭之前,只返回今天的日期,即
SELECT *
FROM adhoc_request
WHERE Crdate >= TRUNC(sysdate)-90
这个查询正在工作...... thanks很多.. – Anas 2013-05-10 09:52:16
并且考虑使用trunc(sysdate)-90如果你只想考虑完整的日子。 – 2013-05-10 10:01:27
谢谢@David,突出点! – RichardTheKiwi 2013-05-10 10:11:05
Where trunc(Crdate) BETWEEN (trunc(sysdate)-INTERVAL '90' DAY) AND trunc(sysdate)
...和的crdate
Rob
2013-05-10 09:28:02
喜文我尝试执行这个查询即时得到下面的错误 – Anas 2013-05-10 09:34:55
错误在第3行: ORA-00907:缺少右括号 – Anas 2013-05-10 09:35:34