全部产品
Search
文档中心

DataWorks:Perbandingan nilai parameter kustom

更新时间:Nov 10, 2025

Dalam pemrosesan data, Anda sering perlu menghasilkan partisi atau nama file secara dinamis berdasarkan waktu proses suatu tugas. Untuk itu, Anda dapat menggunakan parameter sistem untuk menyisipkan nilai waktu dinamis, seperti ${...} berbasis tanggal bisnis dan $[...] berbasis waktu penjadwalan. Topik ini membandingkan perbedaan inti antara kedua format parameter tersebut, dengan fokus pada presisi, perhitungan offset, dan kasus penggunaan.

Penting

Untuk informasi lebih lanjut tentang definisi waktu dasar dan cara mengubah parameter kustom, lihat Format yang didukung untuk parameter penjadwalan.

Perbandingan format parameter kustom

Asumsikan waktu saat ini adalah 01 November 2025, dan suatu tugas dijadwalkan berjalan setiap hari pukul 00:00. Tabel berikut menunjukkan bagaimana nilai diberikan pada parameter kustom yang berbeda.

Catatan

Asumsikan parameter dirujuk dalam kode sebagai pt=${datetime}.

Format parameter

Deskripsi

Penugasan parameter penjadwalan

Hasil penggantian parameter

${yyyymmdd}

Mendapatkan waktu bisnis.

datetime=${yyyymmdd}

datetime=20251031

$[yyyymmddhh24miss]

Mendapatkan waktu penjadwalan, akurat hingga detik.

datetime=$[yyyymmddhh24miss]

datetime=20251101000000

$bizdate

Mendapatkan waktu bisnis.

datetime=$bizdate

datetime=20251031

$cyctime

Mendapatkan waktu penjadwalan, akurat hingga detik.

datetime=$cyctime

datetime=20251101000000

$gmtdate

Mendapatkan waktu saat ini, akurat hingga hari.

datetime=$gmtdate

datetime=20251101

$bizmonth

Mendapatkan bulan bisnis. Logikanya sebagai berikut:

  • Jika waktu bisnis dan waktu saat ini berada dalam bulan yang sama, nilainya adalah bulan sebelumnya.

  • Jika tidak, nilainya adalah bulan dari waktu bisnis.

datetime=$bizmonth

Sebagai contoh, jika waktu saat ini adalah 01 November 2025:

  • Jika waktu bisnis adalah 02 November 2025 (dalam bulan yang sama dengan waktu saat ini), maka datetime=202510.

  • Jika waktu bisnis adalah 31 Oktober 2025 (dalam bulan yang berbeda dari waktu saat ini), maka datetime=202510.

Perbedaan inti antara parameter ${…} dan $[…]

Tabel berikut membandingkan perbedaan inti antara parameter ${…} dan $[…].

Perbandingan

${...}

$[...]

Garis dasar waktu

Tanggal bisnis (T-1)

Waktu penjadwalan (T)

Presisi waktu

Hari (tahun, bulan, hari)

Detik (tahun, bulan, hari, jam, menit, detik)

Kemampuan perhitungan offset

Mendukung offset untuk tahun, bulan, minggu, dan hari.

Mendukung offset untuk hari, jam, dan menit.

Batasan utama

Tidak mendukung pemformatan atau perhitungan offset untuk satuan yang lebih kecil seperti jam, menit, atau detik.

Tidak mendukung offset tahun atau bulan langsung menggunakan sintaks seperti $[yyyy±N] atau $[mm±N]. Gunakan fungsi add_months sebagai gantinya.

Ekuivalensi default

${yyyymmdd} setara dengan $bizdate

$[yyyymmddhh24miss] setara dengan $cyctime

Topik ini menggunakan node ODPS SQL sebagai contoh. Asumsikan waktu penjadwalan tugas tersebut adalah 10:30:00 pada 20 Juli 2025. Tabel berikut menunjukkan konfigurasi nilai waktu untuk parameter ${…} dan $[…].

Nilai waktu

Parameter ${…}

Parameter $[…]

Mendapatkan tahun: 2025

  • Penugasan parameter penjadwalan: datetime=${yyyy}

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=2025

  • Penugasan parameter penjadwalan: datetime=$[yyyy]

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=2025

Mendapatkan tahun: 25

  • Penugasan parameter penjadwalan: datetime=${yy}

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=25

  • Penugasan parameter penjadwalan: datetime=$[yy]

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=25

Mendapatkan tahun: 2024

  • Penugasan parameter penjadwalan: datetime=${yyyy-1}

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=2024

  • Penugasan parameter penjadwalan: datetime=$[add_months(yyyymmdd,-12)]

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=2024

Mendapatkan bulan: 07

  • Penugasan parameter penjadwalan: datetime=${mm}

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=07

  • Penugasan parameter penjadwalan: datetime=$[mm]

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=07

Mendapatkan hari dalam bulan: 20

  • Penugasan parameter penjadwalan: datetime=${dd}

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=20

  • Penugasan parameter penjadwalan: datetime=$[dd]

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=20

Mendapatkan tanggal: 20 Juni 2025

  • Penugasan parameter penjadwalan: datetime=${yyyy-mm-dd-29}

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=2025-06-20

Penting

Metode ini tidak direkomendasikan karena Anda harus mempertimbangkan jumlah hari dalam bulan tersebut. Gunakan format $[] untuk mendapatkan tanggal yang sesuai pada bulan sebelumnya.

  • Penugasan parameter penjadwalan: datetime=$[add_months(yyyymmdd,-1)]

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=2025-06-20

Mendapatkan tanggal: 19 Juli 2025

  • Penugasan parameter penjadwalan: datetime=${yyyy-mm-dd}

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=2025-07-19

  • Penugasan parameter penjadwalan: datetime=$[yyyy-mm-dd-1]

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=2025-07-19

Mendapatkan tanggal: 20 Juli 2024

  • Penugasan parameter penjadwalan: datetime=${yyyy-mm-dd-364}

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=2024-07-20

Penting

Metode ini tidak direkomendasikan karena Anda harus mempertimbangkan tahun kabisat. Gunakan format $[] untuk mendapatkan tanggal yang sesuai pada tahun sebelumnya.

  • Penugasan parameter penjadwalan: datetime=$[add_months(yyyymmdd,-12)]

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=2024-07-20

Mendapatkan waktu: 10:30:00

Tidak didukung

  • Penugasan parameter penjadwalan: datetime=$[hh24:mi:ss]

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter: pt=10:30:00

Mendapatkan waktu: 2025-07-20 10:30:00

Tidak didukung

  • Penugasan parameter penjadwalan: datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss]

    Catatan

    Tentukan dua parameter kustom, datetime1 dan datetime2, dipisahkan oleh spasi.

  • Referensi kode: pt=${datetime1} ${datetime2}

  • Hasil penggantian parameter:

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

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

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

Mendapatkan waktu: 2025-07-20 10:29:00

Tidak didukung

  • Penugasan parameter penjadwalan: datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss-1/24/60]

    Catatan

    Tentukan dua parameter kustom, datetime1 dan datetime2, dipisahkan oleh spasi.

  • Referensi kode: pt=${datetime1} ${datetime2}

  • Hasil penggantian parameter:

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

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

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

Mendapatkan waktu: 2025-07-20 09:30:00

Tidak didukung

  • Penugasan parameter penjadwalan: datetime1=$[yyyy-mm-dd] datetime2=$[hh24:mi:ss-1/24]

    Catatan

    Tentukan dua parameter kustom, datetime1 dan datetime2, dipisahkan oleh spasi.

  • Referensi kode: pt=${datetime1} ${datetime2}

  • Hasil penggantian parameter:

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

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

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

Mendapatkan waktu hari sebelumnya, akurat hingga detik, tanpa spasi antara tanggal dan waktu:

2025071910:30:00

Tidak didukung

  • Penugasan parameter penjadwalan: datetime=$[yyyymmddhh24miss-1]

  • Referensi kode: pt=${datetime}

  • Hasil penggantian parameter:

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

    • pt=2025071910:30:00

Mendapatkan waktu hari sebelumnya, akurat hingga detik, dengan spasi antara tanggal dan waktu:

20250719 10:30:00

Tidak didukung

Penting

Ekspresi penugasan parameter penjadwalan tidak mendukung spasi. Untuk menyertakan spasi, Anda dapat menentukan dua parameter penjadwalan lalu menggabungkannya dengan spasi dalam referensi kode Anda.

  • Penugasan parameter penjadwalan: datetime1=$[yyyymmdd-1] datetime2=$[hh24:mi:ss]

    Catatan

    Tentukan dua parameter kustom, datetime1 dan datetime2, dipisahkan oleh spasi.

  • Referensi kode: pt=${datetime1} ${datetime2}

  • Hasil penggantian parameter:

    • datetime1=$[yyyymmdd-1]=20250719

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

    • pt=20250719 10:30:00