You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在ADF数据流中将CSV多格式日期转换为yyyy-MM-dd HH:mm:ss加载至Azure SQL

在Azure Data Factory数据流中统一转换多格式日期字符串的方案

针对CSV中存在多种日期字符串格式(如MM/dd/yyyy HH:mm、yyyy-MM-dd HH:mm:ss)的场景,可通过以下两种方案在ADF数据流中实现统一格式转换:

方案一:明确格式时用条件判断转换

如果已经明确所有可能的日期格式,直接用iif函数做格式判断,再调用toTimestamp转换为标准时间戳类型:

  1. 在数据流中添加派生列活动,输入以下表达式(替换yourDateColumn为实际的日期列名):
iif(contains(yourDateColumn, '/'), toTimestamp(yourDateColumn, 'MM/dd/yyyy HH:mm'), toTimestamp(yourDateColumn, 'yyyy-MM-dd HH:mm:ss'))
  1. 表达式逻辑:判断日期字符串是否包含/,是则按MM/dd/yyyy HH:mm格式转换,否则按yyyy-MM-dd HH:mm:ss格式转换。

方案二:未知所有格式时用try函数兼容

如果不确定所有可能的日期格式,用嵌套try函数依次尝试不同格式转换,避免转换失败导致数据流报错:

  1. 同样在派生列活动中使用以下表达式:
try(toTimestamp(yourDateColumn, 'MM/dd/yyyy HH:mm'), try(toTimestamp(yourDateColumn, 'yyyy-MM-dd HH:mm:ss'), null))
  1. 表达式逻辑:先尝试第一种格式转换,失败则尝试第二种,若都失败返回null,后续可通过过滤或数据验证处理异常行。

后续映射注意事项

  • 派生列生成的时间戳类型数据,在映射到Azure SQL数据库时,直接对应目标表的datetime或datetime2列即可,ADF会自动按yyyy-MM-dd HH:mm:ss格式写入。
  • 若有更多日期格式需要兼容,只需继续嵌套try分支,比如添加try(toTimestamp(yourDateColumn, 'dd/MM/yyyy HH:mm'), ...)即可。

内容的提问来源于stack exchange,提问作者thesacredkiller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:49:01