在Azure Data Factory中如何将ISO8601字符串转换为datetime2?
Azure Data Factory 转换Cosmos DB时间戳为datetime2类型
针对你遇到的Cosmos DB带时区的时间戳字符串转Azure SQL datetime2类型的问题,直接在派生列中使用以下表达式即可实现需求:
假设原时间戳字段名为timestamp_str,派生列的表达式为:
toString(toTimestamp(timestamp_str), 'yyyy-MM-dd''T''HH:mm:ss.fffffff')
关键说明:
toTimestamp:能够正确解析包含UTC时区(+00:00)的ISO格式时间字符串,转换成ADF可处理的时间戳类型。toString:将时间戳按照指定格式输出,其中fffffff对应7位毫秒精度,正好匹配Azure SQL datetime2(7)的精度要求,输出格式与你期望的2024-01-08T00:00:42.0000000完全一致。- 配置派生列时,需将该列的数据类型设置为
datetime2(7),确保写入Azure SQL时类型匹配。
如果原字段存在空值,可增加空值判断避免报错:
iif(isNull(timestamp_str), null, toString(toTimestamp(timestamp_str), 'yyyy-MM-dd''T''HH:mm:ss.fffffff'))
内容的提问来源于stack exchange,提问作者Anay Purohit
相关产品推荐
相关产品推荐

