sql >> Database teknologi >  >> RDS >> Sqlserver

Skift datoformatet for den aktuelle session i SQL Server

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 |
 +-------------------------+----------------+ 

  1. Sådan fungerer LOWER()-funktionen i MySQL

  2. MySQL CONVERT_TZ()

  3. mysqli eller dø, skal den dø?

  4. SQL SERVER – SQL_NO_CACHE og OPTION (GENKOMPILER)