Azure Data Factory复制数据时间参数失效求助
解决ADF“Copy New Files By Last Modified Date”模板参数配置问题
正确参数表达式
要实现每日触发,筛选昨日00:00:00 UTC到今日00:00:00 UTC之间修改的文件(匹配你“晚于昨日起始、早于今日起始”的需求),使用以下表达式:
LastModified_From:
@formatDateTime(startOfDay(subtractFromTime(utcnow(), 1, 'Day')), 'yyyy-MM-ddTHH:mm:ssZ')逻辑:先取当前时间减1天的日期,截断到当天起始时间(00:00:00),最后格式化为ADF兼容的UTC标准时间格式。
LastModified_To:
@formatDateTime(startOfDay(utcnow()), 'yyyy-MM-ddTHH:mm:ssZ')逻辑:截断当前时间到今日起始时间(00:00:00),格式化为UTC标准格式。
你之前表达式的问题
- subtractFromTime参数逻辑错误:你使用
subtractFromTime(utcnow(), -1, 'Day'),第二个参数为负数时相当于加1天(得到明天的时间),完全不符合需求,应使用正数1来减去1天。 - 时间格式不兼容:ADF的LastModified筛选要求时间符合ISO 8601 UTC格式(带
Z后缀),你尝试的dd-MM-yyyy HH:mm:ss或dd-MMMM-yyyy格式无法被正确解析,必须使用yyyy-MM-ddTHH:mm:ssZ这类标准格式。 - 未锁定当日起始时间:你之前的表达式基于当前时刻加减1天,得到的是“昨天此刻到现在”的时间段,而非完整的昨日区间(昨日0点到今日0点)。
如果你的需求是筛选到当前运行时刻之前的昨日文件(而非今日0点),只需将LastModified_To的表达式改为:
@formatDateTime(utcnow(), 'yyyy-MM-ddTHH:mm:ssZ')
内容的提问来源于stack exchange,提问作者B C
相关产品推荐
相关产品推荐

