Dimulai dengan SQL Server 2012, EOMONTH()
fungsi memungkinkan Anda untuk menemukan hari terakhir bulan tertentu. Ia menerima dua argumen; satu untuk tanggal mulai, dan satu argumen opsional untuk menentukan berapa bulan yang akan ditambahkan ke tanggal tersebut.
Artikel ini memberikan contoh yang menunjukkan bagaimana EOMONTH()
bekerja di SQL Server.
Sintaks
Pertama, inilah sintaksnya:
EOMONTH ( start_date [, month_to_add ] )
Dimana start_date
adalah tanggal di mana Anda ingin menemukan hari terakhir dalam sebulan, dan month_to_add
adalah berapa bulan (jika ada) yang ingin Anda tambahkan ke tanggal mulai.
EOMONTH()
fungsi mengembalikan nilai dalam tanggal tipe data.
Contoh 1
Berikut adalah contoh dasar untuk mendemonstrasikan cara kerjanya:
SELECT EOMONTH( '2025-01-01' ) AS Result;
Hasil:
+------------+ | Result | |------------| | 2025-01-31 | +------------+
Dalam hal ini, bulan awal kita adalah Januari, jadi hasilnya menunjukkan bahwa hari terakhir Januari adalah 31.
Contoh 2 – Tambahkan Bulan
Berikut adalah contoh penggunaan argumen kedua untuk menentukan berapa bulan yang akan ditambahkan. Dalam hal ini, saya menambahkan satu bulan ke tanggal mulai:
SELECT EOMONTH( '2025-01-01', 1 ) AS Result;
Hasil:
+------------+ | Result | |------------| | 2025-02-28 | +------------+
Dan hasilnya menunjukkan kepada kita hari terakhir bulan Februari. Ini karena kami menambahkan satu bulan ke tanggal mulai.
Contoh 3 – Kurangi Sebulan
Anda dapat menggunakan angka negatif untuk mengurangi satu bulan atau lebih dari tanggal mulai. Seperti ini:
SELECT EOMONTH( '2025-01-01', -1 ) AS Result;
Hasil:
+------------+ | Result | |------------| | 2024-12-31 | +------------+
Contoh 4 – Menggunakan Tanggal Sistem
Berikut ini contoh mendapatkan akhir bulan dari tanggal saat ini:
SELECT SYSDATETIME() AS 'Current Date', EOMONTH( SYSDATETIME() ) AS 'End of Month';
Hasil:
+-----------------------------+----------------+ | Current Date | End of Month | |-----------------------------+----------------| | 2018-06-04 22:53:32.7694823 | 2018-06-30 | +-----------------------------+----------------+
Seperti disebutkan, EOMONTH()
fungsi mengembalikan nilainya di tanggal tipe data. Itulah mengapa hasil dalam contoh ini menunjukkan perbedaan antara bagaimana tanggal mulai ditampilkan dan bagaimana akhir bulan ditampilkan.
Dalam hal ini, tanggal mulai kita dibuat dengan SYSDATETIME()
fungsi, yang mengembalikan nilainya sebagai datetime2(7) tipe data. Tipe data ini mencakup komponen waktu dan juga tanggal. Tanggal tipe data hanya menyertakan komponen tanggal.
Anda selalu dapat memformat tanggal menggunakan FORMAT()
fungsi, atau gunakan berbagai fungsi TSQL lainnya untuk mengekstrak berbagai bagian tanggal.
Contoh 5 – Hitung Mundur ke Akhir Bulan
Anda juga dapat menggabungkan EOMONTH()
fungsi dengan fungsi lain untuk mencapai hasil yang diinginkan.
Berikut adalah contoh yang mengembalikan berapa hari, jam, menit, dan detik hingga akhir bulan:
SELECT FORMAT(SYSDATETIME(), 'dd MMMM') AS 'Current Date', FORMAT(EOMONTH( SYSDATETIME() ), 'dd MMMM') AS 'EOM', DATEDIFF(day, SYSDATETIME(), EOMONTH( SYSDATETIME() )) AS 'Days', DATEDIFF(hour, SYSDATETIME(), EOMONTH( SYSDATETIME() )) AS 'Hours', DATEDIFF(minute, SYSDATETIME(), EOMONTH( SYSDATETIME() )) AS 'Minutes', DATEDIFF(second, SYSDATETIME(), EOMONTH( SYSDATETIME() )) AS 'Seconds';
Hasil:
+----------------+---------+--------+---------+-----------+-----------+ | Current Date | EOM | Days | Hours | Minutes | Seconds | |----------------+---------+--------+---------+-----------+-----------| | 04 June | 30 June | 26 | 601 | 36055 | 2163252 | +----------------+---------+--------+---------+-----------+-----------+