如何通过查询传递YTD数据?

时间:2016-09-01 18:36:27

标签: sql ms-access-2010

我需要在传递查询中添加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())

但是,当我将此行转换为传递查询时,它会出错。如果有人能用正确的语法帮助我,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

对我来说看起来像 PLSQL ,因此可能是:

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

答案 1 :(得分:0)

使用纯SQL查询时,以下函数将起作用。基于SO very similar question

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

但是,这与Oracle不兼容,导致我改为使用以下功能。

WHERE PKUP_DATE > ADD_MONTHS(SYSDATE, -12);