2016-03-04 86 views
1

我想現在解決這個查詢了一段時間,我不斷收到錯誤:也能收到ORA-00933:SQL命令不能正確地結束

ORA-00933: SQL command not properly ended

什麼我可以做錯誤的任何提示。

SELECT ACTIVITY_APPROVAL_DATE, COUNT(*)AS ACTIVITY_COUNT 
FROM ACTIVITY 
WHERE ACTIVITY_APPROVAL_DATE = CURRENT_DATE() 
GROUP BY ACTIVITY_APPROVAL_DATE; 
+1

我猜你應該使用oracle sql中的current_Date方法後沒有空的參數括號。 –

+0

https://docs.oracle.com/database/121/SQLRF/functions051.htm#SQLRF00628 –

+0

@JamesFlower。 。 。你真的需要時區組件嗎? –

回答

3

CURRENT_DATE()

SELECT ACTIVITY_APPROVAL_DATE, COUNT(*)AS ACTIVITY_COUNT 
FROM ACTIVITY 
WHERE ACTIVITY_APPROVAL_DATE = CURRENT_DATE 
GROUP BY ACTIVITY_APPROVAL_DATE; 
2

刪除()如果這是Oracle,然後用sysdate

SELECT ACTIVITY_APPROVAL_DATE, COUNT(*)AS ACTIVITY_COUNT 
FROM ACTIVITY 
WHERE ACTIVITY_APPROVAL_DATE = TRUNC(sysdate) 
GROUP BY ACTIVITY_APPROVAL_DATE; 

如果ACTIVITY_APPROVAL_DATE有時間組件,那麼你需要考慮到這一點:

SELECT ACTIVITY_APPROVAL_DATE, COUNT(*)AS ACTIVITY_COUNT 
FROM ACTIVITY 
WHERE ACTIVITY_APPROVAL_DATE >= TRUNC(sysdate) AND 
     ACTIVITY_APPROVAL_DATE < TRUNC(sysdate + 1) 
GROUP BY ACTIVITY_APPROVAL_DATE; 
+1

你可以在Oracle中使用'current_date'(我很確定你知道!);但使用哪個取決於OP是指系統時間還是會話時間,如果他們在不同的時區。特朗斯/範圍的變化當然適用於任何方式。 –

相關問題