Azure Data Factory从$$FilePath提取日期至filedate参数的方法指导
从$$FilePath提取日期到filedate参数的实现方案
针对你给出的文件名格式(示例:CPDSERVICE_20230718.xlsx),可以通过Synapse内置的表达式函数直接提取日期字符串,赋值给filedate参数,具体实现如下:
核心表达式逻辑
直接用字符串拆分与替换的组合函数,一步提取目标日期:
split(replace(last(split($$FilePath, '/')), '.xlsx', ''), '_')[1]
分步拆解说明
- 从完整路径中提取纯文件名:使用
last(split($$FilePath, '/'))拆分路径字符串,取最后一段得到CPDSERVICE_20230718.xlsx - 移除文件后缀:通过
replace(..., '.xlsx', '')去掉.xlsx后缀,得到CPDSERVICE_20230718 - 拆分提取日期:用
split(..., '_')按下划线拆分字符串,取索引为1的元素,即得到目标日期20230718
通用场景优化方案
如果文件名后缀不固定(比如存在.xls等其他格式),可以改用substring结合lastIndexOf动态截取无后缀的文件名:
split(substring(last(split($$FilePath, '/')), 0, lastIndexOf(last(split($$FilePath, '/')), '.')), '_')[1]
参数赋值方式
在Synapse的参数配置界面,将filedate参数的动态值设置为上述任一表达式即可,运行时会自动从$$FilePath中提取日期并传入。
内容的提问来源于stack exchange,提问作者anuj
相关产品推荐
相关产品推荐

