Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ändern Sie das Datumsformat für die aktuelle Sitzung in SQL Server

Immer wenn Sie eine Verbindung zu SQL Server herstellen, werden eine Reihe von Standardeinstellungen auf Ihre Sitzung angewendet. Dazu gehören die Sprach- und Datumsformateinstellungen.

Das Datumsformat wird normalerweise von Ihrer Standardsprache bestimmt. Zum Beispiel, wenn Ihre Standardsprache us_english ist , dann ist das Standarddatumsformat wahrscheinlich mdy , und der erste Tag der Woche ist der Tag 7 (Sonntag).

Wenn Sie Ihre Sprache ändern, wird das Datumsformat implizit entsprechend aktualisiert.

Sie haben jedoch weiterhin die Möglichkeit, das Datumsformat zu ändern, ohne die Sprache zu ändern. Dazu können Sie SET DATEFORMAT verwenden .

Beispiel

Werfen wir zunächst einen Blick auf die aktuellen Einstellungen.

DBCC USEROPTIONS;

Ergebnis:

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

Meine aktuelle Sprache ist also us_english und das Datumsformat ist mdy .

Lassen Sie uns das Datumsformat ändern und erneut überprüfen.

SET DATEFORMAT dmy;
DBCC USEROPTIONS;

Ergebnis:

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

Also habe ich das Datumsformat erfolgreich geändert, ohne die Sprache zu ändern. Jedoch datefirst Bleibt das selbe. Wenn Sie das datefirst ändern möchten verwenden Sie SET DATEFIRST .

SET DATEFIRST 1;
DBCC USEROPTIONS;

Ergebnis:

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

In diesem Fall habe ich den ersten Tag der Woche in Tag 1 geändert, also Montag.

Zurücksetzen

Das Einstellen der Sprache setzt implizit das dateformat und datefirst Einstellungen auf die Standardwerte für diese Sprache zurücksetzen (auch wenn Sie die Sprache auf die aktuelle Sprache zurücksetzen).

In meinem Fall kann ich also die Sprache auf us_english zurücksetzen , und es werden auch die Datumsformatwerte zurückgesetzt.

SET LANGUAGE us_English;
DBCC USEROPTIONS;

Ergebnis:

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