自定义参数分为系统内置参数、自定义参数${..}、自定义参数$[...]、常量,不同类别的参数赋值格式及取值不同。本文为您介绍不同格式自定义参数的取值差异对比情况。
不同格式自定义参数的应用对比
以当前时间为
2021年11月01日
,任务每天00:00
定时运行,示例不同格式自定义参数的赋值情况,具体如下表。
说明 假设代码引用方式均为
pt=${datetime}
。
参数格式 | 描述 | 调度参数赋值 | 参数替换结果 |
---|---|---|---|
${yyyymmdd} |
获取业务时间。 | datetime=${yyyymmdd} |
datetime=20211031 |
$[yyyymmddhh24miss] |
获取定时时间,精确到秒。 | datetime=$[yyyymmddhh24miss] |
datetime=20211101000000 |
$bizdate |
获取业务时间。 | datetime=$bizdate |
datetime=20211031 |
$cyctime |
获取定时时间,精确到秒。 | datetime=$cyctime |
datetime=20211101000000 |
$gmtdate |
获取当前时间,精确到天。 | datetime=$gmtdate
|
datetime=20211101 |
$bizmonth |
获取业务月份。 | datetime=$bizmonth |
示例当前时间为
2021年11月01日 :
|
${…}和$[…]参数的功能差异
${…}和$[…]参数的功能差异如下表所示。
对比项 | ${…}参数 | $[…]参数 |
---|---|---|
时间基准 | 以$bizdate 的取值时间为基准参与运算。
|
以$cyctime 的时间为基准参与运算。
|
补数据功能 | 补数据时选择的业务日期和调度参数的替换结果保持一致。 | 执行补数据时,调度参数替换结果为选择的业务日期+1 天。
例如,补数据选择的业务日期为 |
时间精确度 | 精确到天。
取N年前、N月前等时间数据时,建议使用${...}自定义表达式。 |
精确到秒。
取N小时前、N分钟前等时间数据时,建议使用$[...]自定义表达式。例如: 说明 $[…]参数不支持
${yyyy-mm-dd-1/24} 等用法,建议您使用$[yyyy-mm-dd-1-1/24] 。
|
本文以ODPS SQL节点为例,假设当前时间为
2021年07月20日10时30分00秒
,为您展示${…}和$[…]参数的时间取值配置,具体如下表。
时间取值 | ${…}参数 | $[…]参数 |
---|---|---|
取年份:2021 |
|
|
取年份:21 |
|
|
取年份:2020 |
|
不支持 |
取月份:07 |
|
|
取日期(天):20 |
|
|
取日期:2021年06月20日 |
|
|
取日期:2021年07月19日 |
|
|
取日期:2020年07月20日 |
|
|
取时间:10:30:00 | 不支持 |
|
取时间:2021-07-20 10:30:00 | 不支持 |
|
取时间:2021-07-20 10:29:00 | 不支持 |
|
取时间:2021-07-20 09:30:00 | 不支持 |
|
取前一天时间,精确到秒,且年月日与时分秒之间无空格:
2021071910:30:00 |
不支持 |
|
取前一天时间,精确到秒,且年月日与时分秒之间有空格:
20210719 10:30:00 |
不支持 |
重要 调度参数赋值表达式中不支持空格,您可以使用两个调度参数,然后在代码引用时使用空格进行拼接。
|