azkaban_date_modify

azkaban_date_modify(string date, < string calendarName, > bigint offset, string offset_position)

函数说明

  • 针对日期进行年月日的增减。

参数说明:

  • date:表示日期,支持“yyyy-MM-dd”或“yyyyMMdd”格式的字符串
  • calendarName:表示调度日历,非必填
  • offset:仅支持正数和负数,不能输入0,最大会在调度日历中查找367天,未找到符合offset数的调度日期,会返回报错
  • offset_position:偏移的位置,支持不输入、“dd”、“MM”、“yyyy”,不输入表示“dd”。对于输入calendarName后,此处仅支持不输入或“dd”,否则执行会报错

其具体用法如下表所示:

参数 说明
'$(azkaban_date_modify('${schedule.exec.date.std}', -1))' 实例的计划执行日期减1后以yyyy-MM-dd展示
'$(azkaban_date_modify('${schedule.exec.date.std}', -1, 'dd'))' 实例的计划执行日期减1后以yyyy-MM-dd展示
'$(azkaban_date_modify('${schedule.exec.date.std}', -1, 'MM'))' 实例的计划执行日期所在月份减1后以yyyy-MM-dd展示
'$(azkaban_date_modify('${schedule.exec.date.std}', -1, 'MM'))' 实例的计划执行日期所在月份减1后以yyyy-MM-dd展示
'$(azkaban_date_modify('${schedule.exec.date.std}', -1, 'yyyy'))' 实例的计划执行日期所在年份减1后以yyyy-MM-dd展示
'$(azkaban_date_modify('${schedule.exec.date.simple}', -1))' 实例的计划执行日期减1后以yyyyMMdd展示
'$(azkaban_date_modify('${schedule.exec.date.simple}', -1, 'dd'))' 实例的计划执行日期减1后以yyyyMMdd展示
'$(azkaban_date_modify('${schedule.exec.date.simple}', -1, 'MM'))' 实例的计划执行日期所在月份减1后以yyyyMMdd展示
'$(azkaban_date_modify('${schedule.exec.date.simple}', -1, 'yyyy'))' 实例的计划执行日期所在年份减1后以yyyyMMdd展示
'$(azkaban_date_modify('${schedule.exec.date.simple}','calendarName', -1, 'dd'))' 实例的计划执行日期减1,以yyyyMMdd展示;其中“calendarName”表示调度日历的标识;如果偏移是正数,则往后查找符合条件的日期,偏移是负数,则往前查找

使用上述的Azkaban UDF的SQL示例如下:

Azkaban UDF.md - 图1