添加动态内容 - Azure的数据工厂ADF

时间:2019-01-31 20:02:22

标签: azure expression azure-data-factory azure-data-factory-2

我需要在ADF添加动态内容。以这种方式,它需要获得上个月的日期如下甲。

结果:2018-12.csv.zip

4 个答案:

答案 0 :(得分:1)

如果您将日期设置为28日,然后减去30天,那么您应该可以从任何日期进入上个月。然后只需将其格式化为yyyy-MM,例如

@concat(formatDateTime(adddays(formatDateTime(utcnow(), 'yyyy-MM-28'),-30),'yyyy-MM'),'.csv.zip')

答案 1 :(得分:0)

这可以通过使用https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions来完成。

可能的解决方案: 我建议您在这里使用3个参数。  此解决方案使用trigger()。startTime,但是您也可以使用utcnow()。

注意:adddays(trigger()。startTime,-31,'MM')将作为月份返回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').

希望这会有所帮助。

答案 2 :(得分:0)

@concat(formatDateTime(subtractFromTime(utcNow(),1,'Month'), 'yyyy-MM'), '.csv.zip')

答案 3 :(得分:-1)

在给定的案例中,如果我知道日期,但我每天都在运行Data Factory。所以下面的效果更好。

@concat(substring(string(if(等于(int(int(formatDateTime(utcnow(),'MM'))),01),sub(int(formatDateTime(utcnow(),'yyyyMM')),89), sub(int(formatDateTime(utcnow(),'yyyyMM')),1))),0,4),'-',substring(string(if(equals(int(int(formatDateTime(utcnow(),'MM') ),01),sub(int(formatDateTime(utcnow(),'yyyyMM')),89),sub(int(formatDateTime(utcnow(),'yyyyMM')),1))),4,2), '.csv.zip')

任何更改均表示赞赏。