在数据处理任务中,常需要根据任务运行的时间动态生成分区或文件名。使用系统提供的参数(如基于业务日期的 ${...} 和基于定时时间的 $[...])可以实现动态时间值的注入。下文对比不同参数格式在精度、偏移计算能力和使用场景上的核心差异
了解基准时间的定义和自定义参数的变换方式,请参见调度参数支持的格式。
不同格式自定义参数的应用对比
以当前时间 2025年11月01日、任务每日定时运行时间 00:00 为例,不同格式自定义参数的赋值情况如下:
假设代码引用方式均为pt=${datetime}。
参数格式 | 描述 | 调度参数赋值 | 参数替换结果 |
| 获取业务时间。 |
|
|
| 获取定时时间,精确到秒。 |
|
|
| 获取业务时间。 |
|
|
| 获取定时时间,精确到秒。 |
|
|
| 获取当前时间,精确到天。 |
|
|
| 获取业务月份。取值逻辑如下:
|
| 例如,当前时间为
|
${…}和$[…]参数的核心差异
${…} 和 $[…] 参数的核心差异对比如下:
对比维度 |
|
|
时间基准 | 业务日期(T-1) | 定时时间(T) |
时间精度 | 天 (年月日) | 秒 (年月日时分秒) |
偏移计算能力 | 支持对 年、月、周、天 进行偏移计算。 | 支持对 天、小时、分钟 进行偏移计算。 |
核心限制 | 不支持时、分、秒等更小时间单位的格式化与偏移计算。 | 不支持通过 |
默认等价 |
|
|
本文以ODPS SQL节点为例,假设任务的调度时间为2025年07月20日10时30分00秒,展示${…}和$[…]参数的时间取值配置,具体如下表。
时间取值 | ${…}参数 | $[…]参数 |
取年份:2025 |
|
|
取年份:25 |
|
|
取年份:2024 |
|
|
取月份:07 |
|
|
取日期(天):20 |
|
|
取日期:2025年06月20日 |
重要 此方式需考虑月份天数,不推荐使用,建议通过 |
|
取日期:2025年07月19日 |
|
|
取日期:2024年07月20日 |
重要 此方法需考虑闰年,不推荐使用,建议通过 |
|
取时间:10:30:00 | 不支持 |
|
取时间:2025-07-20 10:30:00 | 不支持 |
|
取时间:2025-07-20 10:29:00 | 不支持 |
|
取时间:2025-07-20 09:30:00 | 不支持 |
|
取前一天时间,精确到秒,且年月日与时分秒之间无空格: 2025071910:30:00 | 不支持 |
|
取前一天时间,精确到秒,且年月日与时分秒之间有空格: 20250719 10:30:00 | 不支持 | 重要 调度参数赋值表达式中不支持空格,您可以使用两个调度参数,然后在代码引用时使用空格进行拼接。
|