Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure数据工厂无法将字符串列值转换为Datetime_Azure_Azure Data Factory - Fatal编程技术网

Azure数据工厂无法将字符串列值转换为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中的数

我正在使用现有的ADF管道将数据从blob复制到sql。我的源数据有一个类似“20000101”的列值。当ADF尝试将此格式从字符串转换为日期时间格式时,我遇到错误。我正在使用json转换器,如“dateTimeFormat”:“yyyy-MM-dd-HH:MM:ss.fff”。但仍然会得到错误,因为“转换值'2000001'时发生异常”无法将字符串转换为datetime类型

有什么建议吗


注意:我只能通过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”直接转换为日期。