我正在尝试通过数据转换组件将值为2014-04-01T00:00:00-04:00的XML文件中的文本字段转换为日期。
完整的错误消息是 [数据转换[2]]错误:将列“BKG_DATE”(417)转换为“Converted_BKG_DATE”(26)列时数据转换失败。转换返回状态值2和状态文本“由于潜在的数据丢失,无法转换该值。”
转换是从DT_WSTR到数据库时间[DT_DBTIME]。
请注意我只需要xml字段值中的日期值。
任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
尝试派生列转换,而不是数据转换组件,并通过从文本列中获取相应的子字符串,从构建日期的表达式派生新列。
答案 1 :(得分:0)
如果只需要日期值,则需要转换为DT_DBDATE,这是一个由年,月和日组成的日期结构。 DT_DBTIME是一个由小时,分钟和秒组成的时间结构,因此不适合。
请参阅MSDN> Integration Services数据类型:https://msdn.microsoft.com/en-gb/library/ms141036.aspx
要将此格式2014-04-01T00:00:00-04:00中的date-time-with-offset值转换为DT_DBDATE,您可以使用带有以下表达式的派生列转换。在此示例中,传入值位于名为RawDateTime的列中。
(DT_DBDATE)LEFT(RawDateTime,10)
我们可以使用数据查看器对其进行测试。
答案 2 :(得分:0)
就我而言,日期采用以下格式: 2021-03-31T16:26:26Z
我发现本机支持该格式的唯一日期类型是 DT_DBTIMESTAMPOFFSET。这直接适用于我的输入文件配置——我不需要派生列转换。