Di Oracle Database kita dapat menggunakan LAST_DAY()
berfungsi untuk mengembalikan hari terakhir bulan tertentu. Ini bisa menjadi hari terakhir bulan ini atau hari terakhir bulan berdasarkan tanggal yang ditentukan.
Contoh
SELECT LAST_DAY(date '2035-02-15')
FROM DUAL;
Hasil:
28-FEB-35
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.
Inilah yang terjadi jika kita menggulirkan tanggal ke depan setahun:
SELECT LAST_DAY(date '2036-02-15')
FROM DUAL;
Hasil:
29-FEB-36
Tahun berikutnya adalah tahun kabisat, jadi kita mendapatkan 29 hari di bulan Februari tahun itu.
Perhatikan bahwa LAST_DAY()
fungsi mengembalikan DATE
nilai. Ini benar bahkan jika kita melewati TIMESTAMP
nilai:
SELECT LAST_DAY(TIMESTAMP '2036-07-15 15:30:45.12345')
FROM DUAL;
Hasil:
31-JUL-36
Bulan Ini
Contoh ini mendapatkan hari terakhir bulan ini:
SELECT
SYSDATE,
LAST_DAY(SYSDATE)
FROM DUAL;
Hasil:
SYSDATE | LAST_DAY(SYSDATE) |
---|---|
22-APR-22 | 30-APR-22 |
Dalam hal ini saya menggunakan SYSDATE
untuk tanggal saat ini.
Bulan Depan
Kita dapat menggunakan ADD_MONTHS()
berfungsi untuk menambahkan satu bulan atau lebih ke tanggal saat ini:
SELECT
SYSDATE,
LAST_DAY(ADD_MONTHS(SYSDATE, 1))
FROM DUAL;
Hasil:
SYSDATE | LAST_DAY(ADD_MONTHS(SYSDATE,1)) |
---|---|
22-APR-22 | 31-MEI-22 |
Dalam hal ini, kami mendapatkan hari terakhir bulan depan.
Bulan lalu
Kita dapat menambahkan nilai negatif untuk mendapatkan hari terakhir dari bulan sebelumnya:
SELECT
SYSDATE,
LAST_DAY(ADD_MONTHS(SYSDATE, -1))
FROM DUAL;
Hasil:
SYSDATE | LAST_DAY(ADD_MONTHS(SYSDATE,-1)) |
---|---|
22-APR-22 | 31-MAR-22 |