您好我正在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个月的数据?
答案 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);