2

我想从 SQL Server 表中检索最新日期。

在“执行 SQL 任务”中,我有以下 SQL 语句:

SELECT ? = MAX(MYDATE) --SQL data type of this column is datetime
FROM TBLLOG
WHERE COMPLETED = 1

在参数映射部分下,我添加了 1 个输出参数:

  • 变量名:(User:var_testdt注意:这是日期时间类型)
  • 方向:输出
  • 日期类型:日期
  • 参数名称:0
  • 参数大小:-1

ResultSet“执行 SQL”任务的属性设置为无。

执行包时出现此错误:

...失败并出现以下错误:
错误 HRESULT E_FAIL 已从对 COM 组件的调用中返回。
可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。

4

2 回答 2

1

这是一个数据类型问题。

根据SQL Server 官方文档DT_DBTIMESTAMPSSIS 中的数据类型映射到 SQL Server 中的datetimesmalldatetime数据类型。虽然,DT_DATE没有映射到任何数据类型。

要解决这个问题,只需将输出参数的数据类型从DATE更改为DBTIMESTAMP。此外,确保User:var_testdt变量也是DateTime.

在此处输入图像描述

于 2021-12-28T21:29:08.093 回答
-1

您应该执行以下操作:

DECLARE @ExString NVARCHAR(500) 
SET @ExString = N'SELECT MAX([MYDATE]) AS MaxOfDate FROM TBLLOG
WHERE COMPLETED = 1 '
EXECUTE(@ExString)

结果 。 .  .

于 2021-12-28T09:55:39.557 回答