sql >> Databasteknik >  >> RDS >> Sqlserver

Ändra datumformatet för den aktuella sessionen i SQL Server

När du ansluter till SQL Server tillämpas ett gäng standardinställningar på din session. Dessa inkluderar inställningarna för språk och datumformat.

Datumformatet bestäms normalt av ditt standardspråk. Till exempel, om ditt standardspråk är us_english , då kommer standarddatumformatet förmodligen att vara mdy , och den första dagen i veckan kommer att vara dag 7 (söndag).

Om du ändrar ditt språk kommer datumformatet implicit att uppdateras i enlighet med detta.

Du har dock fortfarande möjlighet att ändra datumformatet utan att ändra språket. För att göra detta kan du använda SET DATEFORMAT .

Exempel

Låt oss först ta en titt på de nuvarande inställningarna.

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å mitt nuvarande språk är us_english och datumformatet är mdy .

Låt oss ändra datumformatet och kontrollera 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å jag lyckades ändra datumformatet utan att ändra språket. Men datefirst förblir densamma. Om du vill ändra datefirst värde, använd 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 det här fallet har jag ändrat den första dagen i veckan till att vara dag 1, vilket är måndag.

Återställ tillbaka

Att ställa in språket kommer implicit att ställa in dateformat och datefirst inställningarna tillbaka till sina standardvärden för det språket (även om du återställer språket till det aktuella språket).

Så i mitt fall kan jag återställa språket till us_english , och det kommer också att återställa datumformatets värden.

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. ORD() Exempel – MySQL

  2. GROUP BY utan aggregatfunktion

  3. Alternativ till mysql_real_escape_string utan att ansluta till DB

  4. Vad betyder prefixet N i T-SQL-satser och när ska jag använda det?