2016-09-01 40 views
0

我需要爲傳遞查詢添加YTD日期範圍參數。在過去,我一直用下面的線拉YTD數據:如何通過查詢傳遞YTD數據?

WHERE 
    TABLENAME.PKUP_DATE BETWEEN to_date('01/01/2016', 'mm/dd/yyyy') AND 
    to_date('08/02/2016', 'mm/dd/yyyy') 

在未來,我想拉YTD數據,而無需輸入的日期範圍。這可以通過創建具有以下條件的常規查詢來完成:

Year([CPLD_DATE]) = Year(Date()) 

然而,當我通過翻譯查詢它的錯誤這條線的傳了出來。如果有人能用適當的語法幫助我,我將不勝感激。

+1

你會得到什麼錯誤? [CPLD_DATE]中有哪些值?請提供完整的查詢和數據 –

+1

這是oracle SQL嗎? – dbmitch

+0

另外,傳遞查詢到什麼RDMS? SQL Server? MySQL的? Postgres的?甲骨文? DB2?這些都帶有不同的SQL方言,特別是日期處理。 – Parfait

回答

0

貌似PLSQL對我來說,這樣可能是:

WHERE 
    TABLENAME.PKUP_DATE 
     BETWEEN TRUNC(CURRENT_DATE, YEAR) 
     AND CURRENT_DATE 
0

當使用純粹的SQL查詢,下面的函數將工作。基於SO上的very similar question

WHERE PKUP_DATE > ADDDATE(year, -1, getdate()); 

但是,這與Oracle不兼容,導致我轉而使用以下函數。

WHERE PKUP_DATE > ADD_MONTHS(SYSDATE, -12);