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
yearatauyyyyTahun ISO
isoyearmenggunakan 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
quarteratauqBulan
monthataumonataummMinggu
week: Minggu dimulai pada hari Senin. Ini setara denganweek(monday).week(weekday): Minggu dimulai pada hari tertentu dalam minggu(weekday).Nilai yang valid: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, dan SATURDAY.
Minggu ISO
isoweekmenggunakan 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.