如何使用Azure Data Factory表达式将YYYYMM转换为YYYY-MM-01
在Azure Data Factory中实现YYYYMM到YYYY-MM-01的格式转换
你之前的表达式报错是因为formatDateTime要求输入的日期字符串必须符合ISO 8601格式,而直接拼接出来的20230101属于无分隔符的纯数字日期串,ADF无法自动识别其格式。
解决这个问题的核心是先将YYYYMM格式的字符串解析为日期对象,再格式化为目标格式,具体可以用以下两种方式实现:
方法1:静态值转换
如果是固定的YYYYMM值,使用parseDateTime指定输入格式后再格式化:
@formatDateTime(parseDateTime('202301', 'yyyyMM'), 'yyyy-MM-dd')
parseDateTime('202301', 'yyyyMM'):明确告诉ADF输入字符串是yyyyMM格式,将其解析为对应的日期(默认是当月第一天)formatDateTime(..., 'yyyy-MM-dd'):将解析后的日期对象格式化为YYYY-MM-DD格式,最终输出2023-01-01
方法2:动态内容转换
如果YYYYMM是来自管道参数、变量等动态内容,只需替换静态值为动态变量即可,比如参数名为targetMonth:
@formatDateTime(parseDateTime(pipeline().parameters.targetMonth, 'yyyyMM'), 'yyyy-MM-dd')
内容的提问来源于stack exchange,提问作者SQL006
相关产品推荐
相关产品推荐

