无法在 SSIS 表达式生成器中转换日期

Posted

技术标签:

【中文标题】无法在 SSIS 表达式生成器中转换日期【英文标题】:Cannot convert Date in SSIS Expression builder 【发布时间】:2019-08-18 23:27:04 【问题描述】:

SSIS 表达式生成器我已经转换错误无法将string 转换为datetime

"SELECT *
  FROM table Where OperatingDayDate>='"+@[User::MaxOperatingDayDateTime]

错误:无法将字符串转换为日期时间

MaxOperatingDayDateTime 是 SSIS 中的变量 DATETIME OperatingDayDate 是日期类型

【问题讨论】:

如果在 Expression Builder 中按 Evaluate,会返回什么 SQL 查询? 【参考方案1】:

你必须转换变量数据类型:

"SELECT *
  FROM table Where OperatingDayDate>='"+  (DT_WSTR,50)@[User::MaxOperatingDayDateTime] + "'"

有一点没有提到,如果你在 OLEDB Source 中使用 SQL 命令,你可以使用参数化查询:

SELECT * FROM table Where OperatingDayDate >= ?
Parameterized OLEDB source query

【讨论】:

@Yasirayub 你试过什么?第一种还是第二种方法?

以上是关于无法在 SSIS 表达式生成器中转换日期的主要内容,如果未能解决你的问题,请参考以下文章

使用表达式生成器删除 SQL SSIS 变量中的结尾括号?

SSIS:将纪元列转换为日期

SSIS 表达式构建

ssis 空日期作为空值

使用 SSIS 在 DB2 表中设置时间戳列

SSIS MYSQL 到 SQL 数据类型