Azure Data Factory:如何将表名与日期时间参数拼接为指定格式
解决Azure Data Factory中表名与日期时间拼接的报错问题
错误原因
你报错的核心问题是:@pipeline().parameters.TableName是字符串类型参数,你错误地对它调用了dayOfYear()这类日期专属函数——字符串属于原始数据类型,不支持日期相关的嵌套方法,因此触发了"doesn't support nested properties"的错误。
正确实现方式
要生成mytable_20230529_20230529103096格式的字符串,需要用ADF的concat()函数拼接表名、格式化后的日期、格式化后的时间,具体表达式如下:
@concat(pipeline().parameters.TableName, '_', formatDateTime(utcNow(), 'yyyyMMdd'), '_', formatDateTime(utcNow(), 'yyyyMMddHHmmss'))
表达式拆解
pipeline().parameters.TableName:直接引用你的表名字符串参数formatDateTime(utcNow(), 'yyyyMMdd'):将当前UTC时间格式化为YYYYMMDD的日期格式formatDateTime(utcNow(), 'yyyyMMddHHmmss'):将当前UTC时间格式化为YYYYMMDDHHMMSS的时间格式concat():通过下划线_将三个部分拼接成目标格式
注意事项
如果你的"文件创建时间"不是当前UTC时间,而是实际文件的生成/修改时间,需要替换utcNow()为对应时间变量。比如在复制活动完成后,可通过@activity('你的复制活动名称').output.files[0].lastModified获取文件的最后修改时间,再用formatDateTime()格式化后参与拼接。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

