すべてのプロダクト
Search
ドキュメントセンター

DataWorks:カスタムパラメーター値の比較

最終更新日:Nov 09, 2025

データ処理では、タスクの実行時間に基づいて動的にパーティションやファイル名を生成する必要がよくあります。これを行うには、システム提供のパラメーターを使用して、業務日に基づく ${...} やスケジュールされた時間に基づく $[...] などの動的な時間値を挿入できます。この Topic では、精度、オフセット計算、ユースケースに焦点を当て、これらのパラメーターフォーマットの主な違いを比較します。

重要

ベースタイムの定義とカスタムパラメーターの変換方法の詳細については、「スケジューリングパラメーターでサポートされているフォーマット」をご参照ください。

カスタムパラメーターフォーマットの比較

現在の時刻が November 01, 2025 で、タスクが毎日 00:00 に実行されるようにスケジュールされていると仮定します。次の表は、さまざまなカスタムパラメーターがどのように割り当てられるかを示しています。

説明

パラメーターがコード内で pt=${datetime} として参照されていると仮定します。

パラメーターフォーマット

説明

スケジューリングパラメーターの割り当て

パラメーターの置き換え結果

${yyyymmdd}

業務時間を取得します。

datetime=${yyyymmdd}

datetime=20251031

$[yyyymmddhh24miss]

スケジュールされた時間を秒単位の精度で取得します。

datetime=$[yyyymmddhh24miss]

datetime=20251101000000

$bizdate

業務時間を取得します。

datetime=$bizdate

datetime=20251031

$cyctime

スケジュールされた時間を秒単位の精度で取得します。

datetime=$cyctime

datetime=20251101000000

$gmtdate

現在時刻を日単位の精度で取得します。

datetime=$gmtdate

datetime=20251101

$bizmonth

業務月を取得します。ロジックは次のとおりです。

  • 業務時間と現在時刻が同じ月の場合、値は前月になります。

  • それ以外の場合、値は業務時間の月になります。

datetime=$bizmonth

たとえば、現在時刻が November 01, 2025 の場合:

  • 業務時間が November 02, 2025 (現在時刻と同じ月) の場合、datetime=202510 となります。

  • 業務時間が October 31, 2025 (現在時刻と異なる月) の場合、datetime=202510 となります。

${…} と $[…] パラメーターの主な違い

次の表は、${…} パラメーターと $[…] パラメーターの主な違いを比較したものです。

比較

${...}

$[...]

時間ベースライン

業務日 (T-1)

スケジューリング時間 (T)

時間精度

日 (年、月、日)

秒 (年、月、日、時、分、秒)

オフセット計算機能

年、月、週、日のオフセットをサポートします。

日、時、分のオフセットをサポートします。

主な制限

時、分、秒などのより小さな単位のフォーマットやオフセット計算はサポートしていません。

$[yyyy±N]$[mm±N] のような構文を使用した直接の年または月のオフセットをサポートしていません。代わりに add_months 関数を使用してください。

デフォルトの等価性

${yyyymmdd}$bizdate と等価です

$[yyyymmddhh24miss]$cyctime と等価です

この Topic では、ODPS SQL ノードを例として使用します。タスクのスケジュールされた時刻が 10:30:00 on July 20, 2025 であると仮定します。次の表は、${…} パラメーターと $[…] パラメーターの時間値の構成を示しています。

時間値

${…} パラメーター

$[…] パラメーター

年を取得: 2025

  • スケジューリングパラメーターの割り当て: datetime=${yyyy}

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=2025

  • スケジューリングパラメーターの割り当て: datetime=$[yyyy]

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=2025

年を取得: 25

  • スケジューリングパラメーターの割り当て: datetime=${yy}

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=25

  • スケジューリングパラメーターの割り当て: datetime=$[yy]

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=25

年を取得: 2024

  • スケジューリングパラメーターの割り当て: datetime=${yyyy-1}

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=2024

  • スケジューリングパラメーターの割り当て: datetime=$[add_months(yyyymmdd,-12)]

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=2024

月を取得: 07

  • スケジューリングパラメーターの割り当て: datetime=${mm}

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=07

  • スケジューリングパラメーターの割り当て: datetime=$[mm]

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=07

月の日を取得: 20

  • スケジューリングパラメーターの割り当て: datetime=${dd}

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=20

  • スケジューリングパラメーターの割り当て: datetime=$[dd]

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=20

日付を取得: 2025 年 6 月 20 日

  • スケジューリングパラメーターの割り当て: datetime=${yyyy-mm-dd-29}

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=2025-06-20

重要

このメソッドは、月の日数を考慮する必要があるため推奨されません。前月の対応する日付を取得するには、$[] フォーマットを使用してください。

  • スケジューリングパラメーターの割り当て: datetime=$[add_months(yyyymmdd,-1)]

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=2025-06-20

日付を取得: 2025 年 7 月 19 日

  • スケジューリングパラメーターの割り当て: datetime=${yyyy-mm-dd}

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=2025-07-19

  • スケジューリングパラメーターの割り当て: datetime=$[yyyy-mm-dd-1]

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=2025-07-19

日付を取得: 2024 年 7 月 20 日

  • スケジューリングパラメーターの割り当て: datetime=${yyyy-mm-dd-364}

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=2024-07-20

重要

このメソッドは、うるう年を考慮する必要があるため推奨されません。前年の対応する日付を取得するには、$[] フォーマットを使用してください。

  • スケジューリングパラメーターの割り当て: datetime=$[add_months(yyyymmdd,-12)]

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=2024-07-20

時刻を取得: 10:30:00

サポートされていません

  • スケジューリングパラメーターの割り当て: datetime=$[hh24:mi:ss]

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果: pt=10:30:00

時刻を取得: 2025-07-20 10:30:00

サポートされていません

  • スケジューリングパラメーターの割り当て: datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss]

    説明

    スペースで区切られた 2 つのカスタムパラメーター datetime1 と datetime2 を定義します。

  • コードリファレンス: pt=${datetime1} ${datetime2}

  • パラメーターの置き換え結果:

    • datetime1=$[yyyy-mm-dd]=2025-07-20

    • datetime2=$[hh24:mi:ss]=10:30:00

    • pt=2025-07-20 10:30:00

時刻を取得: 2025-07-20 10:29:00

サポートされていません

  • スケジューリングパラメーターの割り当て: datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss-1/24/60]

    説明

    スペースで区切られた 2 つのカスタムパラメーター datetime1 と datetime2 を定義します。

  • コードリファレンス: pt=${datetime1} ${datetime2}

  • パラメーターの置き換え結果:

    • datetime1=$[yyyy-mm-dd]=2025-07-20

    • datetime2=$[hh24:mi:ss-1/24/60]=10:29:00

    • pt=2025-07-20 10:29:00

時刻を取得: 2025-07-20 09:30:00

サポートされていません

  • スケジューリングパラメーターの割り当て: datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss-1/24]

    説明

    スペースで区切られた 2 つのカスタムパラメーター datetime1 と datetime2 を定義します。

  • コードリファレンス: pt=${datetime1} ${datetime2}

  • パラメーターの置き換え結果:

    • datetime1=$[yyyy-mm-dd]=2025-07-20

    • datetime2=$[hh24:mi:ss-1/24]=09:30:00

    • pt=2025-07-20 09:30:00

前日の時刻を秒単位の精度で取得し、日付と時刻の間にスペースを入れない:

2025071910:30:00

サポートされていません

  • スケジューリングパラメーターの割り当て: datetime=$[yyyymmddhh24miss-1]

  • コードリファレンス: pt=${datetime}

  • パラメーターの置き換え結果:

    • datetime=$[yyyymmddhh24miss-1]=2025071910:30:00

    • pt=2025071910:30:00

前日の時刻を秒単位の精度で取得し、日付と時刻の間にスペースを入れる:

20250719 10:30:00

サポートされていません

重要

スケジューリングパラメーターの割り当て式ではスペースはサポートされていません。スペースを含めるには、2 つのスケジューリングパラメーターを定義し、コードリファレンスでスペースを使用して結合します。

  • スケジューリングパラメーターの割り当て: datetime1=$[yyyymmdd-1] datetime2=$[hh24:mi:ss]

    説明

    スペースで区切られた 2 つのカスタムパラメーター datetime1 と datetime2 を定義します。

  • コードリファレンス: pt=${datetime1} ${datetime2}

  • パラメーターの置き換え結果:

    • datetime1=$[yyyymmdd-1]=20250719

    • datetime2=$[hh24:mi:ss]=10:30:00

    • pt=20250719 10:30:00