Terkadang saat bekerja dengan SQL Server (atau DBMS lainnya dalam hal ini), Anda perlu mengembalikan nama pendek selama sebulan. Yang saya maksud adalah 3 huruf singkatan dari satu bulan. Misalnya, Anda memerlukan “Des”, bukan “Desember”.
Berikut adalah empat cara Anda dapat mengekstrak nama bulan yang dipersingkat dari tanggal di SQL Server.
Fungsi FORMAT()
FORMAT()
fungsi telah tersedia sejak SQL Server 2012, dan ini adalah cara paling ringkas untuk mengembalikan bulan sebagai singkatan 3 huruf.
Berikut ini contoh cara kerjanya:
DECLARE @date datetime2 = '2000-01-01'; SELECT FORMAT(@date, 'MMM') AS 'FORMAT';
Hasil:
FORMAT ------ Jan
Baris pertama hanya mendeklarasikan variabel dan memberikan tanggal untuk itu. Baris kedua adalah tempat kami mengembalikan nama bulan pendek dari tanggal.
Fungsi CAST() dan DATENAME()
Opsi ini menampilkan tanggal sebagai CHAR(3)
, sehingga memotong semua karakter yang mengikuti tiga karakter pertama.
Ini contohnya:
DECLARE @date datetime2 = '2000-01-01'; SELECT CAST(DATENAME(month, @date) AS CHAR(3)) AS 'CAST/DATENAME';
Hasil:
CAST/DATENAME ------------- Jan
Fungsi LEFT() dan DATENAME()
Opsi ini mirip dengan yang sebelumnya, kecuali opsi ini menggunakan LEFT()
berfungsi untuk mengambil 3 karakter paling kiri dari tanggal.
Contoh:
DECLARE @date datetime2 = '2000-01-01'; SELECT LEFT(DATENAME(month, @date), 3) AS 'LEFT/DATENAME';
Hasil:
LEFT/DATENAME ------------- Jan
Fungsi LEFT() dan CONVERT()
Opsi ini mengubah tanggal menjadi varchar, lalu mengambil tiga karakter pertama.
Contoh:
DECLARE @date datetime2 = '2000-01-01'; SELECT LEFT(CONVERT(varchar, @date, 100), 3) AS 'LEFT/CONVERT';
Hasil:
LEFT/CONVERT ------------ Jan
Dalam contoh ini, 100
argumen menata tanggal sehingga dalam format berikut:mon dd yyyy hh:miAM (atau PM) . Jadi dalam kasus kami, tanggalnya ditata sebagai 1 Jan 2000 12:00AM .
Dari sana, tinggal memotong tiga huruf pertama dengan LEFT()
fungsi.
Fungsi LEFT() dan MONTHNAME()
Opsi ini menggunakan MONTHNAME()
Fungsi skalar ODBC untuk mengembalikan nama bulan. Dan seperti dua contoh sebelumnya, kita cukup mengekstrak tiga huruf pertama dari nama bulan itu.
Contoh:
DECLARE @date datetime2 = '2000-01-01'; SELECT LEFT({fn MONTHNAME(@date)}, 3) AS 'LEFT/MONTHNAME';
Hasil:
LEFT/MONTHNAME -------------- Jan