DataWorks propose deux familles de paramètres de planification pour injecter des valeurs temporelles dynamiques dans les noms de partitions, les noms de fichiers et les requêtes SQL : la syntaxe basée sur ${...} qui repose sur la date métier, et celle basée sur $[...] qui utilise l'heure planifiée. Cette rubrique compare leurs formats, leur précision et leurs capacités de décalage afin de vous aider à choisir l'option la plus adaptée.
Pour connaître les définitions de l'heure de référence et les règles de transformation, consultez la rubrique Formats pris en charge pour les paramètres de planification.
Aperçu des formats de paramètres
Le tableau suivant présente les six formats de paramètres intégrés. Supposons que l'heure actuelle soit le 1er novembre 2025 et qu'une tâche s'exécute quotidiennement à 00:00. Le paramètre est référencé dans le code sous la forme pt=${datetime}.
| Format du paramètre | Description | Exemple d'affectation | Valeur résolue |
|---|---|---|---|
${yyyymmdd} |
Date métier (J-1), précise au jour près. Utilisez ce format pour les jobs batch quotidiens partitionnés par date ; aucun décalage manuel n'est nécessaire. | datetime=${yyyymmdd} |
datetime=20251031 |
$[yyyymmddhh24miss] |
Heure de déclenchement planifiée, précise à la seconde près. Privilégiez cette option lorsque vous avez besoin d'une précision infra-journalière. | datetime=$[yyyymmddhh24miss] |
datetime=20251101000000 |
$bizdate |
Récupère l'heure métier. Équivalent à ${yyyymmdd}. |
datetime=$bizdate |
datetime=20251031 |
$cyctime |
Récupère l'heure planifiée, précise à la seconde près. Équivalent à $[yyyymmddhh24miss]. |
datetime=$cyctime |
datetime=20251101000000 |
$gmtdate |
Récupère l'heure actuelle, précise au jour près. | datetime=$gmtdate |
datetime=20251101 |
$bizmonth |
Mois métier. Retourne le mois précédent si l'heure métier et l'heure actuelle tombent dans le même mois ; sinon, retourne le mois correspondant à l'heure métier. | datetime=$bizmonth |
datetime=202510 (voir la note ci-dessous) |
Exemple avec $bizmonth — si l'heure actuelle est le 1er novembre 2025 :
Heure métier =
2 novembre 2025(même mois que l'heure actuelle) →datetime=202510Heure métier =
31 octobre 2025(mois différent de l'heure actuelle) →datetime=202510
Différences fondamentales entre ${...} et $[...]
**${...} (date métier)** |
**$[...] (heure planifiée)** |
|
|---|---|---|
| Référentiel temporel | Date métier (J-1) | Heure de déclenchement planifiée (T) |
| Précision temporelle | Jour (année, mois, jour) | Seconde (année, mois, jour, heure, minute, seconde) |
| Prise en charge des décalages | Années, mois, semaines, jours | Jours, heures, minutes |
| Limitations | Ne permet pas d'exprimer les heures, minutes ou secondes. | Aucune syntaxe directe pour les décalages d'année ou de mois ($[yyyy±N], $[mm±N]). Utilisez plutôt add_months. |
| Équivalent abrégé | ${yyyymmdd} = $bizdate |
$[yyyymmddhh24miss] = $cyctime |
Quand utiliser quelle syntaxe
Privilégiez
${...}pour les partitions de date au niveau journalier dans les jobs batch quotidiens : cette syntaxe reflète automatiquement la date des données de la veille (J-1) sans nécessiter de décalage manuel.Optez pour
$[...]lorsque vous avez besoin d'une précision horaire ou minutée, ou pour calculer des décalages mensuels ou annuels (viaadd_months).Utilisez
$bizdateou$cyctimecomme raccourcis lorsque le format correspond exactement à vos besoins.Recourez à
$gmtdatesi vous devez obtenir l'heure actuelle avec une précision au jour près.
Pour plus de détails sur l'utilisation, consultez les rubriques Formats pris en charge pour les paramètres de planification et Configurer et utiliser les paramètres de planification.
Exemples d'utilisation
Les exemples suivants s'appuient sur un nœud SQL ODPS. L'heure planifiée est fixée à 10:30:00 le 20 juillet 2025.
| Valeur cible | **${...}** |
**$[...]** |
|---|---|---|
Année : 2025 |
datetime=${yyyy} → pt=2025 |
datetime=$[yyyy] → pt=2025 |
Année courte : 25 |
datetime=${yy} → pt=25 |
datetime=$[yy] → pt=25 |
Année précédente : 2024 |
datetime=${yyyy-1} → pt=2024 |
datetime=$[add_months(yyyymmdd,-12)] → pt=2024 |
Mois : 07 |
datetime=${mm} → pt=07 |
datetime=$[mm] → pt=07 |
Jour : 20 |
datetime=${dd} → pt=20 |
datetime=$[dd] → pt=20 |
Date avec un mois de recul : 2025-06-20 |
datetime=${yyyy-mm-dd-29} → pt=2025-06-20Non recommandé — vous devez tenir compte du nombre variable de jours selon les mois. Privilégiez plutôt $[...]. |
datetime=$[add_months(yyyymmdd,-1)] → pt=2025-06-20 |
Veille : 2025-07-19 |
datetime=${yyyy-mm-dd} → pt=2025-07-19 |
datetime=$[yyyy-mm-dd-1] → pt=2025-07-19 |
Même date, il y a un an : 2024-07-20 |
datetime=${yyyy-mm-dd-364} → pt=2024-07-20Non recommandé — vous devez gérer les années bissextiles. Privilégiez plutôt $[...]. |
datetime=$[add_months(yyyymmdd,-12)] → pt=2024-07-20 |
Heure uniquement : 10:30:00 |
Non pris en charge | datetime=$[hh24:mi:ss] → pt=10:30:00 |
Date et heure complètes : 2025-07-20 10:30:00 |
Non pris en charge | Définissez deux paramètres séparés par un espace : datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss] ; référence dans le code : pt=${datetime1} ${datetime2} → pt=2025-07-20 10:30:00 |
Une minute plus tôt : 2025-07-20 10:29:00 |
Non pris en charge | datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss-1/24/60] → pt=2025-07-20 10:29:00 |
Une heure plus tôt : 2025-07-20 09:30:00 |
Non pris en charge | datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss-1/24] → pt=2025-07-20 09:30:00 |
Date et heure de la veille (sans espace) : 2025071910:30:00 |
Non pris en charge | datetime=$[yyyymmddhh24miss-1] → pt=2025071910:30:00 |
Date et heure de la veille (avec espace) : 20250719 10:30:00 |
Non pris en charge | Les expressions de paramètre ne prennent pas en charge les espaces. Définissez deux paramètres : datetime1=$[yyyymmdd-1] datetime2=$[hh24:mi:ss] ; référence dans le code : pt=${datetime1} ${datetime2} → pt=20250719 10:30:00 |
Étapes suivantes
Formats pris en charge pour les paramètres de planification — référence complète de la syntaxe pour
${...}et$[...]Configurer et utiliser les paramètres de planification — guide de configuration étape par étape