嗨,我正在为SQL Server 2008的VS2008开发SSIS包。
为了从源读取数据,我添加了 ADO.NET 源编辑器,并在SQL命令窗口中编写了下面的查询,但出现错误。
Select *
From Table
Where CreatedDate Between DATEADD('d', -90, Date()) And Date()
上述 SQL 查询的错误:
错误 [42000] [IBM i [System i Access ODBC Driver] [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 Driver] [DB2 for i5/OS] SQL0204 - 找不到 * LIBL 中 * N 类型的 GETDATE。(CWBODBC.DLL(
有没有人可以帮助我编写SQL命令查询以获取最近3个月的数据?
从错误消息来看,您似乎正在查询 DB2 for IBM i V5 数据库。事实上,DB2 中没有GETDATE()
函数。也没有DATEADD()
。相反,您替换CURRENT DATE
特殊寄存器(变量(的值并像这样计算范围
SELECT * FROM Table
WHERE CreatedDate BETWEEN CURRENT DATE - 90 DAYS AND CURRENT DATE
<</div>
div class="one_answers"> 试试这个 您将获得过去三个月的数据
SELECT * FROM TABLE WHERE CreatedDate >= DATEADD(MONTH,-3,getdate())
试试这个....
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);