Di SQL Server, Anda dapat menggunakan MONTH()
berfungsi untuk mengubah nama bulan menjadi nomor yang sesuai.
Contoh
Berikut adalah contoh mengubah nama bulan menjadi nomor bulan.
SELECT MONTH('September' + '1,1');
Hasil:
9
Apa yang saya lakukan di sini pada dasarnya adalah membuat "tanggal" (termasuk bulan yang saya tentukan) sehingga SQL Server tidak membuat kesalahan saat menggunakan MONTH()
fungsi tanpa tanggal yang valid.
Fungsi ini menerima ekspresi apa pun yang dapat diselesaikan ke waktu , tanggal , waktu kecil , waktu tanggal , datetime2 , atau datetimeoffset nilai. Itu bisa berupa ekspresi, ekspresi kolom, variabel yang ditentukan pengguna, atau literal string.
Lebih Banyak “Suka Tanggal”
Anda juga dapat memberikan argumen yang lebih “seperti kencan” dengan melakukan sesuatu seperti ini:
SELECT MONTH('September' + ' 01, 1900');
Hasil:
9
Hari &Tahun Ini
Atau jika Anda lebih suka menggunakan hari dan tahun saat ini, Anda dapat melakukan sesuatu seperti ini:
SELECT MONTH('September' + FORMAT(GETDATE(), 'd,y'));
Hasil:
9
Untuk memperjelas, kecuali jika bulan yang ditentukan sama dengan bulan saat ini, Anda akan mendapatkan tanggal yang berbeda dari tanggal saat ini.
Berikut ini contoh untuk menggambarkan apa yang saya maksud:
SELECT
FORMAT(GETDATE(), 'MMMM d, yyyy') AS [Today],
'September' + FORMAT(GETDATE(), ' d, yyyy') AS [Modified],
MONTH('September' + FORMAT(GETDATE(), ' d, yyyy')) AS [Month Number];
Hasil:
+----------------+--------------------+----------------+ | Today | Modified | Month Number | |----------------+--------------------+----------------| | March 22, 2020 | September 22, 2020 | 9 | +----------------+--------------------+----------------+
Saya menjalankan kueri ini pada 22 Maret 2020, tetapi tanggal yang diubah adalah 22 September 2020.
Terlepas dari itu, nomor bulan yang benar dikembalikan ketika kami menggunakan MONTH()
.