Setiap kali Anda terhubung ke SQL Server, banyak pengaturan default diterapkan ke sesi Anda. Ini termasuk bahasa dan pengaturan format tanggal.
Format tanggal biasanya ditentukan oleh bahasa default Anda. Misalnya, jika bahasa default Anda adalah us_english
, maka format tanggal default mungkin adalah mdy
, dan hari pertama dalam seminggu adalah hari 7
(Minggu).
Jika Anda mengubah bahasa Anda, Anda format tanggal secara implisit akan diperbarui sesuai.
Namun, Anda masih memiliki opsi untuk mengubah format tanggal tanpa mengubah bahasa. Untuk melakukannya, Anda dapat menggunakan SET DATEFORMAT
.
Contoh
Pertama, mari kita lihat setelan saat ini.
DBCC USEROPTIONS;
Hasil:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | mdy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
Jadi bahasa saya saat ini adalah us_english
dan format tanggalnya adalah mdy
.
Mari kita ubah format tanggal dan periksa lagi.
SET DATEFORMAT dmy;
DBCC USEROPTIONS;
Hasil:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | dmy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
Jadi saya berhasil mengubah format tanggal tanpa mengubah bahasa. Namun, datefirst
tetap sama. Jika Anda ingin mengubah datefirst
nilai, gunakan SET DATEFIRST
.
SET DATEFIRST 1;
DBCC USEROPTIONS;
Hasil:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | dmy | | datefirst | 1 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
Dalam hal ini saya telah mengubah hari pertama dalam seminggu menjadi hari 1, yaitu hari Senin.
Setel Ulang Kembali
Menyetel bahasa akan secara implisit menyetel dateformat
dan datefirst
pengaturan kembali ke nilai default untuk bahasa itu (bahkan jika Anda mengatur ulang bahasa ke bahasa saat ini).
Jadi dalam kasus saya, saya dapat mengatur ulang bahasa ke us_english
, dan itu juga akan mengatur ulang nilai format tanggal.
SET LANGUAGE us_English;
DBCC USEROPTIONS;
Hasil:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | mdy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+