Di Oracle Database, LAST_DAY()
fungsi mengembalikan hari terakhir bulan yang berisi tanggal yang disediakan.
Ia menerima satu argumen, yaitu tanggal yang Anda inginkan untuk menemukan hari terakhir bulan itu.
Sintaks
Sintaksnya seperti ini:
LAST_DAY(date)
Dimana date
adalah ekspresi tanggal yang ingin Anda temukan hari terakhir bulannya.
Contoh
Ini contohnya:
SELECT LAST_DAY(DATE '2030-02-01')
FROM DUAL;
Hasil:
28-FEB-30
Dalam hal ini, kami menggunakan tanggal di bulan Februari. Ternyata, Februari memiliki 28 hari di tahun itu.
Inilah yang terjadi jika kita menambahkan tanggal ke tahun kabisat berikutnya:
SELECT LAST_DAY(DATE '2032-02-01')
FROM DUAL;
Hasil:
29-FEB-32
Hari terakhir bulan ditentukan oleh parameter sesi NLS_CALENDAR
. Lihat Cara Memeriksa Nilai Parameter NLS untuk mengetahui kalender yang digunakan sesi Anda. Milik saya menggunakan kalender Gregorian.
Selain itu, tanggal dikembalikan dalam format yang ditentukan untuk sesi Anda. Dalam contoh ini, sesi saya menggunakan format default ketika NLS_TERRITORY
parameter diatur ke AMERICA
. Anda selalu dapat mengubah format waktu sesi jika diinginkan.
Nilai Datetime Lainnya
Ini juga berfungsi dengan nilai datetime lainnya, seperti TIMESTAMP
, dll:
SELECT LAST_DAY(TIMESTAMP '2030-02-01 10:30:45.34567')
FROM DUAL;
Hasil:
28-FEB-30
Namun, jenis yang dikembalikan selalu DATE
, terlepas dari tipe data argumennya.
Tanggal Di Luar Rentang
Tanggal nol dan tanggal di luar rentang lainnya menghasilkan kesalahan.
Contoh:
SELECT LAST_DAY(DATE '0000-00-00')
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT LAST_DAY(DATE '0000-00-00') FROM DUAL Error at Command Line : 1 Column : 22 Error report - SQL Error: ORA-01841: (full) year must be between -4713 and +9999, and not be 0 01841. 00000 - "(full) year must be between -4713 and +9999, and not be 0" *Cause: Illegal year entered *Action: Input year in the specified range
Seperti yang dinyatakan oleh pesan kesalahan, tahun (penuh) harus antara -4713
dan +9999
, dan bukan 0
.
Tanggal Saat Ini
Kita dapat melewati SYSDATE
sebagai argumen datetime untuk menggunakan tanggal saat ini:
SELECT
SYSDATE,
LAST_DAY(SYSDATE)
FROM DUAL;
Hasil:
SYSDATE LAST_DAY(SYSDATE) ____________ ____________________ 12-AUG-21 31-AUG-21
Argumen Tidak Ada
Memanggil LAST_DAY()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:
SELECT LAST_DAY()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT LAST_DAY() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: