【问题标题】:SSIS expression to replace year and keep date and monthSSIS表达式替换年份并保留日期和月份
【发布时间】:2015-08-27 16:41:48
【问题描述】:

我在 dd.mm.yyyy 格式的原始数据文件中有一个生日字段。 我需要用 2015 年替换年份,并在读取文件时保持文件中的月份和日期相同。 目标列是日期时间格式。 我能够制定以下表达式,但它不断抛出一个我无法理解的错误。

"2015 -" + RIGHT("0" + (DT_STR,2,1252)DATEPART("mm",birthdate),2) + "-" + RIGHT("0" + (DT_STR,2,1252)DATEPART("dd",birthdate),2))

对此的任何见解都会有所帮助

【问题讨论】:

    标签: date datetime ssis expression type-conversion


    【解决方案1】:

    使用 VS 2012,我使用值为“27.08.2014”的字符串变量 testdate 运行测试,然后在表达式任务中应用您的表达式,用 @[User::testdate] 替换生日。这导致了以下错误

    “无法评估表达式....尝试解析 表情……失败了。表达式可能包含无效标记, 不完整的令牌或无效元素。可能不是 格式正确,或者可能缺少所需元素的一部分,例如 括号。”

    如果您的原始数据文件是文本,那么它可能以字符串形式出现,而不是按日期时间格式化,即使它保留了 dd.mm.yyyy 格式。因此,如果您收到类似的错误,则需要将其视为字符串。试试下面的表达式。

    "2015-" + SUBSTRING(生日, 4, 2) + "-" + SUBSTRING(生日, 1, 2)

    代替“birthdate”,我在上面应用了我的@[User::testdate] 变量(值为“27.08.2014”),它可以很好地返回以下评估值。

    2015-08-27

    之后,如果使用它来填充数据库表,您可以将值转换为日期时间。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-12-25
      • 2021-01-15
      • 2018-12-24
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多