Saat bekerja dengan tanggal di SQL Server, mudah tersandung dengan format tanggal yang berbeda. Misalnya, seseorang dari AS mungkin mempertimbangkan 07/01/2018 berarti tanggal 7 Januari, tetapi seseorang dari Inggris Raya mungkin menganggapnya sebagai tanggal 1 Juli.
Dalam banyak kasus, Anda bahkan mungkin tidak tahu format tanggal mana yang digunakan untuk bahasa/budaya tertentu. Untungnya, SQL Server menyimpan informasi ini dalam database sumber dayanya, dan Anda dapat mengambilnya kembali dengan menggunakan salah satu dari dua metode di bawah ini.
Metode 1:Prosedur Tersimpan sp_helplanguage
sp_helplanguage
prosedur tersimpan menampilkan informasi tentang bahasa alternatif tertentu atau tentang semua bahasa di SQL Server. Ini termasuk nama bahasa, alias, dan format tanggal, dan nama bulan, yang terkait dengan bahasa masing-masing.
Untuk mengembalikan info untuk semua bahasa di SQL Server, jalankan perintah berikut:
EXEC sp_helplanguage;
Ini mengembalikan set hasil yang cukup besar. Berikut daftar lengkap bahasa yang saya dapatkan saat menjalankannya di SQL Server 2017.
Jika Anda tidak ingin semua bahasa dikembalikan, Anda dapat mempersempitnya ke bahasa tertentu.
Ini contohnya:
EXEC sp_helplanguage Spanish;
Berikut hasilnya ketika saya menjalankannya di mssql-cli:
-[ RECORD 1 ]------------------------- langid | 5 dateformat | dmy datefirst | 1 upgrade | 0 name | Español alias | Spanish months | Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octub shortmonths | Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic days | Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo lcid | 3082 msglangid | 3082
Anda juga dapat menggunakan @@LANGUAGE
untuk mempersempitnya menjadi apa pun bahasa Anda saat ini. Contoh:
EXEC sp_helplanguage @@LANGUAGE;
Hasil:
-[ RECORD 1 ]------------------------- langid | 0 dateformat | mdy datefirst | 7 upgrade | 0 name | us_english alias | English months | January,February,March,April,May,June,July,August,September,Octobe shortmonths | Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec days | Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday lcid | 1033 msglangid | 1033
Metode 2:Tampilan sys.syslanguages
Cara kedua untuk mengembalikan info bahasa adalah dengan langsung membuka sys.syslanguages
tampilan kompatibilitas sistem. Ini adalah tampilan dari prosedur tersimpan di atas mendapatkan infonya.
Berikut cara mengkueri tampilan ini:
SELECT * FROM sys.syslanguages;
Anda juga dapat mempersempitnya menjadi bahasa dengan menambahkan WHERE
klausa:
SELECT * FROM sys.syslanguages WHERE name = 'Español';
Perhatikan bahwa setiap entri bahasa memiliki nama dan alias. Kueri di atas dapat ditulis ulang untuk menggunakan alias:
SELECT * FROM sys.syslanguages WHERE alias = 'Spanish';
Seperti yang mungkin Anda ketahui, jauh lebih mudah menggunakan prosedur tersimpan (opsi pertama), tetapi tampilan ini dapat berguna jika Anda hanya ingin sebagian kolom dikembalikan.
Misalnya:
SELECT name, alias, dateformat FROM sys.syslanguages WHERE alias = 'Spanish';
Hasil:
+---------+---------+--------------+ | name | alias | dateformat | |---------+---------+--------------| | Español | Spanish | dmy | +---------+---------+--------------+