All Products
Search
Document Center

MaxCompute:LAST_DAY

Last Updated:Nov 26, 2025

Fungsi LAST_DAY mengembalikan hari terakhir dari satuan waktu tertentu, date_part, untuk input date.

Syntax

DATE|STRING LAST_DAY(DATE|DATETIME|TIMESTAMP|TIMESTAMP_NTZ|STRING <date>[, STRING <date_part>])

-- Contoh standar.
-- Nilai kembali adalah 2025-10-31.
SELECT LAST_DAY('2025-10-01');

Parameter

  • date: Wajib diisi. Nilai dengan tipe data DATE, DATETIME, TIMESTAMP, TIMESTAMP_NTZ, atau STRING.

    Jika input berupa nilai STRING, format tanggal harus menggunakan yyyy-mm-dd.

  • date_part: Opsional. Konstanta STRING yang menentukan satuan waktu untuk perhitungan. Jika parameter ini dihilangkan, fungsi secara default mengembalikan hari terakhir dalam bulan tersebut. Nilai-nilai berikut didukung untuk parameter ini:

    Unit waktu

    Nilai

    Tahun

    year atau yyyy

    Tahun ISO

    isoyear menggunakan batas tahun berdasarkan sistem penomoran minggu ISO 8601. Batas tahun ISO adalah hari Senin pada minggu pertama tahun tersebut. Minggu pertama adalah minggu yang memuat Kamis pertama dalam tahun kalender Gregorian.

    Kuartal

    quarter atau q

    Bulan

    month atau mon atau mm

    Minggu

    • week: Minggu dimulai pada hari Senin. Ini setara dengan week(monday).

    • week(weekday): Minggu dimulai pada hari tertentu dalam minggu (weekday).

      Nilai yang valid: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, dan SATURDAY.

    Minggu ISO

    isoweek menggunakan batas minggu yang ditentukan dalam ISO 8601. Minggu ISO dimulai pada hari Senin.

Nilai kembali

Mengembalikan nilai DATE atau STRING. Aturan berikut berlaku:

  • Jika Anda menentukan date_part, nilai DATE dikembalikan. Jika Anda tidak menentukan date_part, nilai STRING dikembalikan dalam format yyyy-mm-dd.

  • Jika nilai date bukan bertipe DATE, DATETIME, TIMESTAMP, TIMESTAMP_NTZ, atau STRING, atau jika formatnya tidak valid, fungsi mengembalikan NULL atau error.

  • Jika nilai date adalah NULL, fungsi mengembalikan error.

Contoh

  • Contoh 1: Input tanggal dasar.

    -- Nilai kembali adalah 2025-03-31.
    SELECT LAST_DAY('2025-03-04');
    
    -- Nilai kembali adalah 2025-07-31.
    SELECT LAST_DAY('2025-07-04 11:40:00');
  • Contoh 2: Melewatkan nilai NULL atau string tidak valid.

    -- Error dikembalikan.
    SELECT LAST_DAY(NULL,'isoyear');
    
    -- Nilai kembali adalah NULL.
    SELECT LAST_DAY('20250304'); 
  • Contoh 3: Menentukan satuan waktu, seperti 'MONTH', 'YEAR', atau 'QUARTER'.

    -- Nilai kembali adalah 2025-03-31.
    SELECT LAST_DAY('2025-03-27 11:40:00','MONTH');
    
    -- Nilai kembali adalah 2025-12-31.
    SELECT LAST_DAY(DATETIME '2025-03-27 11:40:00','YEAR');
    
    -- Nilai kembali adalah 2025-03-31.
    SELECT LAST_DAY(DATETIME '2025-03-27 11:40:00','QUARTER');
  • Contoh 4: Membandingkan hasil week dan isoweek.

    SELECT LAST_DAY('2025-06-27 11:40:00','week(sunday)') AS ld_week_sunday,
           LAST_DAY('2025-06-27 11:40:00','isoweek') AS ld_isoweek,
           LAST_DAY('2025-06-27 11:40:00','week') AS ld_week,
           LAST_DAY('2025-06-27 11:40:00','week(monday)') AS ld_week_monday;
           
    -- Hasil berikut dikembalikan.
    +----------------+------------+------------+----------------+
    | ld_week_sunday | ld_isoweek | ld_week    | ld_week_monday | 
    +----------------+------------+------------+----------------+
    | 2025-06-28     | 2025-06-29 | 2025-06-29 | 2025-06-29     | 
    +----------------+------------+------------+----------------+

Fungsi terkait

LAST_DAY adalah fungsi tanggal. Untuk informasi lebih lanjut mengenai fungsi untuk perhitungan dan konversi tanggal, lihat Date functions.