如何在Azure Data Factory中设置输出日期格式为yyyy-MM-dd
解决ADF数据流Excel转CSV日期格式不生效的问题
问题说明
使用Azure Data Factory(ADF)数据流将Excel文件转换为CSV格式时,已在接收器(Sink)中设置日期输出格式为yyyy-MM-dd,且源列投影已设为date类型,但输出CSV的日期仍保留原格式(如13/01/2022),无法得到2022-01-13的期望格式。
示例输入(Excel):
| ID | Date |
|---|---|
| 1 | 13/01/2022 |
当前输出(CSV):
ID,Date 1,13/01/2022
期望输出(CSV):
ID,Date 1,2022-01-13
解决方案
1. 添加派生列转换
在源节点和接收器节点之间插入派生列转换,对日期列做强制格式转换:
- 若源列已被识别为
date类型,直接使用表达式:toString(Date, 'yyyy-MM-dd')(Date替换为你的实际日期列名),将日期类型转为指定格式的字符串。 - 若源列被识别为字符串类型(ADF未自动识别为日期),先转日期再转格式:
toString(toDate(Date, 'dd/MM/yyyy'), 'yyyy-MM-dd'),其中dd/MM/yyyy是原Excel的日期格式。 - 派生列名称可设为原列名(覆盖原列),后续直接映射到接收器。
2. 调整接收器映射
确保派生后的字符串类型日期列,正确映射到接收器的对应列,此时无需再在接收器中设置日期格式(列已为指定格式的字符串,直接输出即可)。
3. 验证源数据类型
检查源节点的列投影:
- 确认日期列的数据类型为
date,若显示为string,需先通过toDate函数转换为日期类型,再执行格式转换。
内容的提问来源于stack exchange,提问作者developer
相关产品推荐
相关产品推荐

