【问题标题】:SSIS cannot convert text to dateSSIS 无法将文本转换为日期
【发布时间】:2016-05-02 07:58:05
【问题描述】:

我正在尝试通过数据转换组件将 XML 文件中值为 2014-04-01T00:00:00-04:00 的文本字段转换为日期。

完整的错误信息是 [数据转换 [2]] 错误:将列“BKG_DATE”(417) 转换为列“Converted_BKG_DATE”(26) 时数据转换失败。转换返回状态值 2 和状态文本“由于可能丢失数据,无法转换该值。”。

转换是从 DT_WSTR 到数据库时间 [DT_DBTIME]。

请注意,我只需要 xml 字段值中的日期值。

谁能帮我解决这个问题。

【问题讨论】:

    标签: ssis


    【解决方案1】:

    尝试使用派生列转换,而不是数据转换组件,并通过从文本列中获取适当的子字符串从构建日期的表达式中派生新列。

    【讨论】:

      【解决方案2】:

      如果只需要日期值,则需要转换为DT_DBDATE,即由年、月、日组成的日期结构。 DT_DBTIME是由时分秒组成的时间结构,不适合。

      参见 MSDN > 集成服务数据类型:https://msdn.microsoft.com/en-gb/library/ms141036.aspx

      要将具有偏移量的日期时间值以 2014-04-01T00:00:00-04:00 格式转换为 DT_DBDATE,您可以使用带有以下表达式的派生列转换。在此示例中,传入的值位于名为 RawDateTime 的列中。

      (DT_DBDATE)LEFT(RawDateTime,10)
      

      我们可以使用数据查看器对其进行测试。

      【讨论】:

        【解决方案3】:

        就我而言,日期采用以下格式: 2021-03-31T16:26:26Z

        我发现唯一支持该格式的日期类型是 DT_DBTIMESTAMPOFFSET。这直接适用于我的输入文件配置——我不需要派生列转换。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-30
          相关资源
          最近更新 更多