查询在SSIS SQL Command

时间:2017-05-22 15:34:06

标签: ssis db2 ssis-2008

您好我正在VS2008中为SQL Server 2008开发SSIS包。

要从源读取数据,我已经添加了ADO.NET源代码编辑器,并在SQL命令窗口中编写了以下查询,但收到错误。

Select * 
From Table 
Where CreatedDate Between DATEADD('d', -90, Date()) And Date()

上述SQL查询出错:

  

错误[42000] [IBM i [System i Access ODBC驱动程序] [DB2 for i5 / OS] SQL0170 - 函数DATE的参数数量无效。 (CWBODBC.DLL)

Select * 
From Table 
Where CreatedDate Between DateAdd('d', -90, GETDATE()) And GETDATE()

第二个SQL查询出错:

  

错误[42S02] [IBM] [System i Access ODBC驱动程序] [DB2 for i5 / OS] SQL0204 - 找不到* LIBL中* N的GETDATE。 (CWBODBC.DLL)

是否有人可以帮助我编写SQL命令查询以获取最近3个月的数据?

3 个答案:

答案 0 :(得分:4)

您似乎在查询DB2 for IBM i V5数据库,从错误消息判断。实际上DB2中没有GETDATE()函数。那里也没有DATEADD()。相反,您替换CURRENT DATE special register(变量)的值并计算范围,如此

SELECT * FROM Table 
WHERE CreatedDate BETWEEN CURRENT DATE - 90 DAYS AND CURRENT DATE

答案 1 :(得分:0)

试试这个你将获得过去三个月到期的数据

SELECT * FROM TABLE WHERE CreatedDate >= DATEADD(MONTH,-3,getdate()) 

答案 2 :(得分:0)

试试这个......

WHERE CreatedDate >= CAST(GETDATE() - 90 AS DATE) 
 AND  CreatedDate <= CAST(GETDATE() AS DATE); 

OR

WHERE CreatedDate >= CAST(DATEADD(MONTH, -3 , GETDATE()) AS DATE) 
 AND  CreatedDate <= CAST(GETDATE() AS DATE);