Fungsi ini memotong nilai tanggal atau waktu ke satuan waktu yang ditentukan oleh date_part dan mengembalikan nilai STRING.
Sintaksis
STRING TRUNC_TIME(DATE|DATETIME|TIMESTAMP|TIMESTAMP_NTZ <date>, STRING <date_part>)
-- Contoh standar.
-- Mengembalikan 2025-06.
SELECT TRUNC_TIME(DATETIME '2025-06-10 14:20:30', 'month');Parameter
date: Wajib diisi. Tanggal atau timestamp yang akan dipotong. Nilainya dapat bertipe DATE, DATETIME, TIMESTAMP, atau TIMESTAMP_NTZ.
Jika Anda menggunakan edisi tipe data MaxCompute V1.0, input juga dapat berupa nilai STRING. String tersebut harus dalam format
DATETIMEyyyy-mm-dd hh:mi:ss, seperti2025-07-21 00:00:00. Nilai tersebut secara implisit dikonversi ke tipeDATETIMEsebelum perhitungan.date_part: Wajib diisi. Satuan waktu untuk pemotongan. Parameter ini merupakan konstanta STRING yang tidak peka huruf besar/kecil. Nilai yang valid:
year,month,day, danhour.
Nilai kembali
Mengembalikan nilai STRING. Format string yang dikembalikan bergantung pada nilai date_part.
Untuk tipe data yang terkait zona waktu, seperti DATETIME dan TIMESTAMP, fungsi TRUNC_TIME terlebih dahulu mengonversi waktu lokal ke UTC. Kemudian, fungsi ini memotong waktu berdasarkan date_part dan mengembalikan hasilnya sebagai nilai STRING.
Jika date_part bernilai 'year', fungsi mengembalikan nilai dalam format
yyyy.Jika date_part bernilai 'month', fungsi mengembalikan nilai dalam format
yyyy-mm.Jika date_part bernilai 'day', fungsi mengembalikan nilai dalam format
yyyy-mm-dd.Jika date_part bernilai 'hour', fungsi mengembalikan nilai dalam format
yyyy-mm-dd hh:mm:ss.
Aturan berikut berlaku untuk nilai kembalian:
Jika tipe data date bukan DATE, DATETIME, TIMESTAMP, atau TIMESTAMP_NTZ, maka akan dikembalikan error.
Jika date_part bernilai NULL, maka akan dikembalikan error.
Contoh
Contoh 1: Input berupa nilai DATETIME.
Misalnya, asumsikan zona waktu sesi atau proyek saat ini adalah UTC+8 dan waktu lokalnya adalah DATETIME '2025-06-03 07:15:08'. Fungsi TRUNC_TIME terlebih dahulu mengonversi waktu lokal ini ke waktu UTC '2025-06-02 23:15:08'. Kemudian, fungsi memotong waktu berdasarkan date_part dan mengembalikan hasilnya sebagai nilai STRING.
SET odps.sql.timezone=Asia/Shanghai; SELECT TRUNC_TIME(DATETIME '2025-06-03 07:15:08','year') AS tc_year, TRUNC_TIME(DATETIME '2025-06-03 07:15:08','month') AS tc_month, TRUNC_TIME(DATETIME '2025-06-03 07:15:08','day') AS tc_date, TRUNC_TIME(DATETIME '2025-06-03 07:15:08','hour') AS tc_hour; -- Hasil berikut dikembalikan. +------------+------------+------------+------------+ | tc_year | tc_month | tc_date | tc_hour | +------------+------------+------------+------------+ | 2025 | 2025-06 | 2025-06-02 | 2025-06-02 23:00:00 | +------------+------------+------------+------------+Contoh 2: Input berupa nilai DATE.
Misalnya, jika inputnya adalah DATE '2025-06-10', fungsi TRUNC_TIME memotong nilai ini berdasarkan satuan waktu yang ditentukan oleh date_part dan mengembalikan nilai STRING.
SELECT TRUNC_TIME(DATE '2025-06-10','year' ), TRUNC_TIME(DATE '2025-06-10','month' ), TRUNC_TIME(DATE '2025-06-10','day' ); -- Hasil berikut dikembalikan. +------------+------------+------------+ | _c0 | _c1 | _c2 | +------------+------------+------------+ | 2025 | 2025-06 | 2025-06-10 | +------------+------------+------------+Contoh 3: Waktu bertipe STRING.
Misalnya, jika inputnya adalah nilai STRING '2025-06-03 15:30:30', Anda harus mengatur edisi tipe data proyek MaxCompute Anda ke V1.0. Hal ini memungkinkan nilai tersebut dikonversi secara implisit ke tipe DATETIME untuk perhitungan. Jika tidak, error akan dikembalikan.
-- Zona waktu session atau proyek saat ini adalah UTC+8. SET odps.sql.timezone=Asia/Shanghai; -- Atur edisi tipe data ke V1.0. SET odps.sql.type.system.odps2=false; -- Waktu terlebih dahulu dikonversi ke UTC lalu dipotong ke satuan jam. SELECT TRUNC_TIME('2025-06-03 15:30:30','hour'); -- Hasil berikut dikembalikan. +------------+ | _c0 | +------------+ | 2025-06-03 07:00:00 | +------------+
Fungsi terkait
Fungsi TRUNC_TIME adalah fungsi tanggal. Untuk informasi lebih lanjut tentang fungsi perhitungan dan konversi tanggal, lihat Fungsi tanggal.