Saat menggunakan SQL Server, Anda memiliki beberapa opsi berbeda saat Anda perlu mengembalikan nama bulan dari tanggal menggunakan T-SQL. Dengan nama bulan, saya tidak berbicara tentang nomor bulan (seperti 07 ). Saya berbicara tentang nama lengkap bulan tersebut (seperti Juli ).
Misalnya, ketika diberi tanggal 01-07-2018 , Anda ingin Juli untuk dikembalikan.
Artikel ini menyajikan tiga cara untuk mengembalikan nama bulan dari tanggal di SQL Server menggunakan T-SQL.
Fungsi FORMAT()
FORMAT()
fungsi mengembalikan nilai yang diformat dalam format yang ditentukan dan budaya opsional. Anda dapat menggunakannya untuk mengembalikan nama bulan dari tanggal.
Ini contohnya:
DECLARE @date datetime2 = '2018-07-01'; SELECT FORMAT(@date, 'MMMM') AS Result;
Hasil:
+----------+ | Result | |----------| | July | +----------+
Dalam hal ini kami menyediakan string format MMMM
yang merupakan string format tanggal dan waktu khusus untuk mengembalikan nama bulan.
Hal yang baik tentang FORMAT()
fungsinya adalah menerima argumen opsional yang memungkinkan Anda menentukan budaya yang akan digunakan.
Berikut beberapa contohnya:
DECLARE @date datetime2 = '2018-07-01'; SELECT FORMAT(@date, 'MMMM', 'en-US') AS 'en-US', FORMAT(@date, 'MMMM', 'es-es') AS 'es-es', FORMAT(@date, 'MMMM', 'de-de') AS 'de-de', FORMAT(@date, 'MMMM', 'zh-cn') AS 'zh-cn';
Hasil:
+---------+---------+---------+---------+ | en-US | es-es | de-de | zh-cn | |---------+---------+---------+---------| | July | julio | Juli | 七月 | +---------+---------+---------+---------+
Jika Anda tidak memberikan argumen budaya, bahasa sesi saat ini akan digunakan. Jika Anda tidak yakin bahasa apa yang digunakan sesi saat ini, berikut adalah 3 cara untuk mendapatkan bahasa sesi saat ini. Jika Anda merasa perlu mengubah bahasa, berikut cara menyetelnya ke bahasa lain.
Anda juga dapat menggunakan FORMAT()
berfungsi untuk mendapatkan nama bulan yang disingkat. Untuk melakukannya, cukup gunakan MMM
(tiga M
s bukannya empat).
Berikut adalah contoh yang mengembalikan nama bulan yang disingkat, dan nama bulan lengkap:
DECLARE @date datetime2(0) = '2028-09-01'; SELECT FORMAT(@date, 'MMM', 'en-US') 'en-US', FORMAT(@date, 'MMM', 'es-es') 'es-es', FORMAT(@date, 'MMM', 'it') 'it' UNION ALL SELECT FORMAT(@date, 'MMMM', 'en-US'), FORMAT(@date, 'MMMM', 'es-es'), FORMAT(@date, 'MMMM', 'it');
Hasil:
+-----------+------------+-----------+ | en-US | es-es | it | |-----------+------------+-----------| | Sep | sep. | set | | September | septiembre | settembre | +-----------+------------+-----------+
Ini hanyalah salah satu dari banyak cara untuk mendapatkan nama bulan yang disingkat dari tanggal (walaupun metode ini bisa dibilang yang terbaik). Setidaknya ada empat cara lagi untuk mengembalikan nama bulan yang disingkat dari tanggal.
Fungsi DATENAME()
DATENAME()
fungsinya mirip dengan DATEPART()
fungsi, kecuali mengembalikan nama dari bagian tanggal yang ditentukan (tetapi hanya jika nama berlaku). Itu berarti ia mengembalikan nama hari minggu atau nama bulan jika itu yang Anda butuhkan.
Berikut cara mendapatkan nama bulan dengan fungsi ini:
DECLARE @date datetime2 = '2018-07-01'; SELECT DATENAME(month, @date) AS Result;
Hasil:
+----------+ | Result | |----------| | July | +----------+
Fungsi Skalar ODBC MONTHNAME()
Ada fungsi skalar ODBC khusus untuk mengembalikan nama bulan dari tanggal. Namanya MONTHNAME()
, dan jadinya seperti ini:
DECLARE @date datetime2 = '2018-07-01'; SELECT {fn MONTHNAME(@date)} AS Result;
Hasil:
+----------+ | Result | |----------| | July | +----------+
Saat menggunakan fungsi skalar ODBC di T-SQL, fungsi tersebut dikelilingi oleh kurung kurawal ({}
) dan nama fungsi diawali dengan fn
.
Jika Anda perlu mendapatkan nama bulan pendek, lihat 5 Cara Mendapatkan Nama Bulan Pendek dari Tanggal di SQL Server.