Hver gang du opretter forbindelse til SQL Server, anvendes en masse standardindstillinger på din session. Disse omfatter sproget og indstillingerne for datoformat.
Datoformatet bestemmes normalt af dit standardsprog. For eksempel, hvis dit standardsprog er us_english
, så vil standarddatoformatet sandsynligvis være mdy
, og den første dag i ugen vil være dag 7
(søndag).
Hvis du ændrer dit sprog, vil datoformatet implicit blive opdateret i overensstemmelse hermed.
Du har dog stadig mulighed for at ændre datoformatet uden at ændre sproget. For at gøre dette kan du bruge SET DATEFORMAT
.
Eksempel
Lad os først tage et kig på de aktuelle indstillinger.
DBCC USEROPTIONS;
Resultat:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Så mit nuværende sprog er us_english
og datoformatet er mdy
.
Lad os ændre datoformatet og tjekke igen.
SET DATEFORMAT dmy;
DBCC USEROPTIONS;
Resultat:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Så det lykkedes at ændre datoformatet uden at ændre sproget. Dog datefirst
forbliver det samme. Hvis du vil ændre datefirst
værdi, brug SET DATEFIRST
.
SET DATEFIRST 1;
DBCC USEROPTIONS;
Resultat:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
I dette tilfælde har jeg ændret den første dag i ugen til at være dag 1, hvilket er mandag.
Nulstil det tilbage
Indstilling af sproget vil implicit indstille dateformat
og datefirst
indstillingerne tilbage til deres standardværdier for det pågældende sprog (selvom du nulstiller sproget til det aktuelle sprog).
Så i mit tilfælde kan jeg nulstille sproget til us_english
, og det vil også nulstille datoformatværdierne.
SET LANGUAGE us_English;
DBCC USEROPTIONS;
Resultat:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+