首页 > 解决方案 > ADF,“复制数据”中的数据转换

问题描述

我有来自 JSON API 的数据,这些数据在移动到目标表之前保存在临时表中。目标列的数据类型是datetime,临时表中的源列是 varchar(512)。由于 varchar (512) 到 datetime 之间的数据类型转换,我在调试时出错。以下消息是错误消息:

ErrorCode=TypeConversionFailure,将列名“start__date”的值“2021-09-16T07:58:39.187+07:00”从“String”类型(精度:255,比例:255)转换为“DateTime”类型时发生异常(精度:23,比例:3)。附加信息:字符串未被识别为有效的日期时间。

我在 SSMS 中尝试过:

declare @This_time  varchar(256) = '2021-09-16T07:58:39.187+07:00'
    , @MyTime datetime

set @MyTime = Cast(@This_time   as datetime)
select @MyTime

和错误信息

消息 241,级别 16,状态 1,第 7 行从字符串转换日期和/或时间时转换失败。

完成时间:2021-11-02T20:51:31.5345885+07:00

临时表的外观completion time和值具有相同的模式。datetime2我在 SSMS 中再次尝试了 它,它可以工作。这是结果2021-09-16 07:58:39.187

我假设数据类型是默认的,但可以更改。第一次尝试和错误。 在此处输入图像描述

然后,我将 JSON 中的格式更改Codedatetime2. 第二次尝试仍然没有运气。 在此处输入图像描述

这是我的目标表

在此处输入图像描述

如何解决 ADF 中的这种数据转换,copy data

标签: azure-sql-databaseazure-data-factorycopy-activity

解决方案


您尝试转换的数据类型实际上是datetimeoffset,请参阅MSFT 文档。请参阅此小提琴以获取工作示例。


推荐阅读