Anda dapat menggunakan kode T-SQL di bawah ini untuk mengonversi nomor bulan ke nama yang sesuai di SQL Server.
Ini untuk saat-saat di mana Anda tidak benar-benar memiliki tanggal lengkap – ketika yang Anda miliki hanyalah nomor bulan. Jika Anda melakukannya miliki tanggalnya, maka berikut ini cara mendapatkan nama bulan dari tanggal.
Contoh
Anda bisa mendapatkan nama bulan dari nomor yang sesuai dengan menggunakan DATENAME()
fungsi bersama dengan DATEADD()
.
Berikut adalah contoh yang menggunakan bulan 10 (Oktober):
SELECT DATENAME(
month,
DATEADD( month , 10, -1 )
);
Hasil:
October
Penjelasan Kode
Jika Anda bertanya-tanya mengapa ada -1
dalam kode di atas, itu karena tanggal dasarnya adalah 1900-01-01 (well, 1900-01-01 00:00:00.000 tepatnya).
Jika kita menambahkan 10 menjadi 01, maka kita mendapatkan 11, yaitu November (bulan yang salah). Oleh karena itu kita perlu menguranginya dengan 1.
Contoh berikut harus menggambarkan ini lebih baik daripada kata-kata saya. Berikut adalah berbagai DATEADD()
nilai yang dikembalikan, tergantung pada apa yang saya gunakan sebagai argumen ketiga.
SELECT
DATEADD( month, 0, 0 ) AS [Base Date],
DATEADD( month, 10, 0 ) AS [Add 10],
DATEADD( month, 10, -1 ) AS [Subtract 1];
Hasil:
+-------------------------+-------------------------+-------------------------+ | Base Date | Add 10 | Subtract 1 | |-------------------------+-------------------------+-------------------------| | 1900-01-01 00:00:00.000 | 1900-11-01 00:00:00.000 | 1900-10-31 00:00:00.000 | +-------------------------+-------------------------+-------------------------+
Jadi opsi ketiga memberi kita nomor bulan yang benar, dan selanjutnya tinggal menggunakan DATENAME()
untuk mengubahnya menjadi nama bulan.
Alternatif:FORMAT()
Jika Anda tidak menyukai DATENAME()
fungsi, Anda dapat menukarnya dengan FORMAT()
fungsi sebagai gantinya. Konsep yang sama berlaku.
SELECT FORMAT(
DATEADD( month , 10, -1 ),
'MMMM'
);
Hasil:
October