SQL Server: Mendapatkan Nama Bulan dalam Berbagai Bahasa

Untuk mendapatkan nama bulan dalam Bahasa Inggris kita dapat menggunakan beberapa pilihan berikut:

SELECT GETDATE() 'Today', DATENAME(month,GETDATE()) 'Month Name'

SELECT GETDATE() 'Today'DATENAME(mm,GETDATE()) 'Month Name'

SELECT GETDATE() 'Today'DATENAME(m,GETDATE()) 'Month Name'

Hasilnya sebagai berikut:


Sebenarnya kita juga dapat menggunakan SET LANGUAGE ke bahasa tertentu maka akan mendapatkan nama bulan sesuai bahasa tersebut. Asalkan bahasa yang dipilih termasuk salah satu official language yang ada di list sys.syslanguages (Transact-SQL).

SET LANGUAGE Arabic
SELECT DATENAME(mm, GETDATE()) 'Arabic Month Name'

SET Language Russian
SELECT DATENAME(mm, GETDATE()) 'Russian Month Name'

--mengembalikan setting bahasa ke inggris
SET LANGUAGE English
SELECT DATENAME(mm, GETDATE()) 'English Month Name'


Perubahan ini akan berlaku pada sesi yang besangkutan, jadi jika butuh setting bahasa Inggris lagi maka jangan lupa untuk mengembalikan setting dengan SET LANGUAGE English.

Sayangnya Bahasa Indonesia tidak termasuk salah satu bahasa yang didukung dengan cara di atas. Lalu bagaimana cara medapatkan nama bulan dalam Bahasa Indonesia?

Kita perlu membuat fungsi sendiri untuk mempermudah pekerjaan kita dan agar bisa reusable.

CREATE FUNCTION [dbo].[udfGetMonthName] (@iMonth INT)  
/* This function returns name of month by number in Indonesian
    Author: rIrsan. (6/14/22)
*/

RETURNS VARCHAR(20) AS  
BEGIN 
DECLARE @MonthName AS VARCHAR(20)
SET @MonthName = CASE WHEN @iMonth = 1 THEN 'Januari'
                      
WHEN @iMonth = 2 THEN 'Februari'
      
WHEN @iMonth = 3 THEN 'Maret'
      WHEN @iMonth = 4 THEN 'April'
      WHEN @iMonth = 5 THEN 'Mei'
      WHEN @iMonth = 6 THEN 'Juni'
      WHEN @iMonth = 7 THEN 'Juli'
      WHEN @iMonth = 8 THEN 'Agustus'
      WHEN @iMonth = 9 THEN 'September'
      WHEN @iMonth = 10 THEN 'Oktober'
      WHEN @iMonth = 11 THEN 'November'
      WHEN @iMonth = 12 THEN 'Desember'
      ELSE 'Undefined' END
RETURN (@MonthName)
END


Setelah function di buat, maka cara penggunaannya adalah sebagai berikut:

SELECT [dbo].[udfGetMonthName](MONTH(GETDATE())) [Nama Bulan Saat Ini/Sekarang]

SELECT [dbo].[udfGetMonthName](2) [Nama Bulan ke-2]

SELECT [dbo].[udfGetMonthName](11) [Nama Bulan ke-11]




Post a Comment

0 Comments