Azure数据工厂无法将字符串列值转换为Datetime
我正在使用现有的ADF管道将数据从blob复制到sql。我的源数据有一个类似“20000101”的列值。当ADF尝试将此格式从字符串转换为日期时间格式时,我遇到错误。我正在使用json转换器,如“dateTimeFormat”:“yyyy-MM-dd-HH:MM:ss.fff”。但仍然会得到错误,因为“转换值'2000001'时发生异常”无法将字符串转换为datetime类型 有什么建议吗Azure数据工厂无法将字符串列值转换为Datetime,azure,azure-data-factory,Azure,Azure Data Factory,我正在使用现有的ADF管道将数据从blob复制到sql。我的源数据有一个类似“20000101”的列值。当ADF尝试将此格式从字符串转换为日期时间格式时,我遇到错误。我正在使用json转换器,如“dateTimeFormat”:“yyyy-MM-dd-HH:MM:ss.fff”。但仍然会得到错误,因为“转换值'2000001'时发生异常”无法将字符串转换为datetime类型 有什么建议吗 注意:我只能通过json映射来处理此问题。无法编辑现有管道。这里有任何可能性吗?无论blob或NFS中的数
注意:我只能通过json映射来处理此问题。无法编辑现有管道。这里有任何可能性吗?无论blob或NFS中的数据在on prem中,data Factory copy active都无法将“20000101”转换为datetime。即使我们将其设置为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."
为了实现这一点,我们必须在数据流中使用以下工具进行一些数据转换:
表达方式:
toTimestamp(toDate(concat(substring(dd,0, 4), '-',substring(dd,5, 2),'-',substring(dd,7, 2))))
然后它可能映射到您的接收器表。什么是'20000101',yyyy='2000',01=MM和01='dd'的数据格式?@LeonYue是的,更正了什么是源文件,csv或txt?您可以使用数据流吗?可以实现这一点,我将向您展示步骤。@LeonYue这必须通过复制数据来实现。数据源将是一个位于prem上的NFS。因此我们不能将on-prem数据集直接映射到数据流。现在,出于测试目的,数据位于blob中。是的,源文件是TXT。如果可以将on-prem中的NFS设置为复制数据中的源,则数据流也应支持将其作为源。仅当复制数据处于活动状态时,我们无法实现这一点。我们需要进行数据转换,例如,将“2000001”转换为“20”00-01-01'。数据工厂无法将“20000101”直接转换为日期。