Bất cứ khi nào bạn kết nối với SQL Server, một loạt cài đặt mặc định sẽ được áp dụng cho phiên của bạn. Chúng bao gồm cài đặt ngôn ngữ và định dạng ngày tháng.
Định dạng ngày thường được xác định bởi ngôn ngữ mặc định của bạn. Ví dụ:nếu ngôn ngữ mặc định của bạn là us_english
, thì định dạng ngày mặc định có thể sẽ là mdy
và ngày đầu tiên của tuần sẽ là ngày 7
(Chủ nhật).
Nếu bạn thay đổi ngôn ngữ của mình, định dạng ngày của bạn sẽ được cập nhật một cách ngầm định cho phù hợp.
Tuy nhiên, bạn vẫn có tùy chọn thay đổi định dạng ngày tháng mà không cần thay đổi ngôn ngữ. Để thực hiện việc này, bạn có thể sử dụng SET DATEFORMAT
.
Ví dụ
Trước tiên, hãy xem cài đặt hiện tại.
DBCC USEROPTIONS;
Kết quả:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Vì vậy, ngôn ngữ hiện tại của tôi là us_english
và định dạng ngày là mdy
.
Hãy thay đổi định dạng ngày và kiểm tra lại.
SET DATEFORMAT dmy;
DBCC USEROPTIONS;
Kết quả:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Vậy là tôi đã thay đổi thành công định dạng ngày tháng mà không cần thay đổi ngôn ngữ. Tuy nhiên, datefirst
vẫn như cũ. Nếu bạn muốn thay đổi datefirst
giá trị, sử dụng SET DATEFIRST
.
SET DATEFIRST 1;
DBCC USEROPTIONS;
Kết quả:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Trong trường hợp này, tôi đã thay đổi ngày đầu tiên của tuần thành ngày 1, tức là thứ Hai.
Đặt lại nó trở lại
Đặt ngôn ngữ sẽ đặt dateformat
một cách ngầm định và datefirst
cài đặt trở về giá trị mặc định cho ngôn ngữ đó (ngay cả khi bạn đặt lại ngôn ngữ thành ngôn ngữ hiện tại).
Vì vậy, trong trường hợp của tôi, tôi có thể đặt lại ngôn ngữ thành us_english
và nó cũng sẽ đặt lại các giá trị định dạng ngày.
SET LANGUAGE us_English;
DBCC USEROPTIONS;
Kết quả:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+