【问题标题】:SSIS Data Conversion string to timestampSSIS 数据转换字符串到时间戳
【发布时间】:2021-03-08 09:00:37
【问题描述】:

我正在尝试将列转换为时间戳。

值示例:ETime:2020-06-04 17:46:53.750

我做了什么

  1. 我添加数据转换,编辑输入列(ETime)
  2. 显示高级编辑器上的输入和输出属性
  3. 数据转换输出,选择ETime的副本
  4. 更改:FastParse : TrueDataType : database timestamp [DT_DBTIMESTAMP]

但它返回此错误

错误:数据流任务中的 0xC02020C5,数据转换 [11]:将“ETime”列 (94) 转换为“ETime 副本”(15) 列时数据转换失败。转换返回状态值 2 和状态文本“由于可能丢失数据,无法转换该值。”。

我错过了什么吗?

编辑

数据样本 1.

id, cid, invid, etc
33333,44444,abc333334,shoes
33334,77777,abc3333347,shoes
33335,88888,abc3333358,book

数据样本 2.

cid,invid,bcode,ETime
44444,abc333334,03,2021-01-03 20:08:51.200
77777,abc3333347,03,2021-01-06 17:30:53.210
88888,abc3333358,03,2021-01-04 20:04:22.600

我将加入他们cid 数据样本 2 的数据可能损坏为

cid,invid,bcode,ETime
44444,abc333334,NULL,Nodatafound

【问题讨论】:

  • 列的初始类型是什么?你的数据源是什么?
  • 源是 2 个平面文件,我加入了它们。这个数据转换就是join之后的过程。
  • 你有空行吗?
  • 嗨,为了避免这种情况,我使用了条件拆分。但它仍然无法正常工作。你有什么想法吗?
  • 你能分享你的输入吗?

标签: sql-server ssis sql-server-data-tools


【解决方案1】:

尝试缺少行并得到异常:

错误:0xC02020C5 在数据流任务,数据转换1:数据 将“列 0”(25) 列转换为列时转换失败 “第 0 列的副本”(6)。转换返回状态值 2 和 状态文本“由于潜在的原因,无法转换该值 数据丢失。”。

现在尝试没有任何缺失的行并且它有效

似乎缺少可用值或数据格式不正确。 尝试从数据转换组件的配置错误输出中忽略失败。

【讨论】:

  • 您好,为了避免缺失值的问题,我尝试使用条件拆分。但它仍然无法正常工作。数据转换失败。
  • 去配置错误输出然后设置值忽略该字段的失败
  • 您好 Khairul,感谢您的协助。我试过这个,它返回所有的行 NULL。
  • 仅忽略日期字段的失败。检查我的 output.txt,它返回了所有
  • 经过多次尝试,我发现每个日期后面都有“,”逗号,所以我不得不再次清理所有数据。之后,一切正常。感谢您对 Khairul 先生的帮助。我很感激。问候,查尔斯
猜你喜欢
  • 2021-02-28
  • 2018-07-15
  • 1970-01-01
  • 2020-11-22
  • 2022-01-21
  • 2021-11-17
  • 1970-01-01
  • 2019-07-01
  • 1970-01-01
相关资源
最近更新 更多