db2 在SSIS SQL命令中查询以获取过去3个月的数据

o3imoua4  于 2022-11-07  发布在  DB2
关注(0)|答案(3)|浏览(493)

您好,我正在VS 2008中为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驱动程序] [用于i5 / OS的DB2] SQL 0170-函数DATE的参数数目无效。(CWBODBC.DLL)

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

第二个SQL查询出错:
错误[42 S 02] [IBM] [System i Access ODBC驱动程序] [用于i5 / OS的DB2] SQL 0204-在 * LIBL中找不到类型为 * N的GETDATE。(CWBODBC.DLL)
有没有人可以帮我写SQL命令查询,以获得过去3个月的数据?

4bbkushb

4bbkushb1#

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

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

wlzqhblo2#

试试这个你会得到从过去三个月到现在的数据

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

ecfsfe2w3#

试试这个...

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

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

相关问题