您好,我正在使用以下查詢從當前日期檢索最近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