如何解决Azure数据工厂无法将字符串列值转换为日期时间
我正在使用现有的ADF管道将数据从Blob复制到sql。我的源数据的列值类似“ 20000101”。当ADF尝试将其从字符串转换为dateTime格式时,出现错误。我正在使用json转换器,例如“ dateTimeFormat”:“ yyyy-MM-dd HH:mm:ss.fff”。但是仍然最终会收到错误消息,因为“在将值'20000101'转换为日期时间类型时发生异常。
有人建议吗?
注意:我必须仅通过json映射处理此问题。无法编辑现有管道。这里有任何可能性吗?
解决方法
无论Prem上Blob中的数据还是NFS中的数据,活动的Data Factory复制都无法将“ 20000101”转换为日期时间。甚至我们将其设置为DateTime列。
"errorCode": "2200","message": "ErrorCode=TypeConversionFailure,Exception occurred when converting value '20000101' for column name 'dd' from type 'String' (precision:,scale:) to type 'DateTime' (precision:,scale:). Additional info: String was not recognized as a valid DateTime."
要实现这一点,我们必须使用DerivedColumn在数据流中进行一些数据转换:
表达:
toTimestamp(toDate(concat(substring(dd,4),'-',substring(dd,5,2),7,2))))
然后它可能正在映射到您的接收器表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。