我需要在自动进稿器中添加动态内容。在它需要得到上个月日期如下酸盐这样一种方式。
结果:2018-12.csv.zip
这可以通过使用https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions来完成。
可能的解决方法:我会建议你在这里使用3个参数。该解决方案使用触发器()。开始时间,但您可以使用utcnow()以及。
注:(触发器()开始时间,-31, 'MM')adddays将返回12个月,因为这一个月是31天前。如果您的触发器在每月的5日,或在本月的第一天比你可以使用-2。
processYear = @formatDateTime(adddays(trigger().startTime,-31), 'yyyy')
processMonth = @formatDateTime(adddays(trigger().startTime,-31), 'MM')
result = @concat(pipeline().parameters.processYear,'-',pipeline().parameters.processMonth,'.csv.zip').
希望这会有所帮助。
如果您设定的日期到28日,然后减去30天,应该让你进入任何日期的前一个月。然后,只需格式化为yyyy-MM
,如
@concat(formatDateTime(adddays(formatDateTime(utcnow(), 'yyyy-MM-28'),-30),'yyyy-MM'),'.csv.zip')
上面给出的情况下工作,如果我知道的日期,但我每天都跑我的数据工厂。所以下面工作得更好。
@concat(子串(字符串(如果(等于(INT(FORMATDATETIME(utcnow(), 'MM')),01),分(INT(FORMATDATETIME(utcnow(), 'YYYYMM')),89),分(INT (FORMATDATETIME(utcnow(), 'YYYYMM')),1))),0,4), ' - ',子(字符串(如果(等于(INT(FORMATDATETIME(utcnow(), 'MM')),01 ),分(INT(FORMATDATETIME(utcnow(), 'YYYYMM')),89),分(INT(FORMATDATETIME(utcnow(), 'YYYYMM')),1))),4,2),'。CSV 。压缩')
任何更改赞赏。