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

SET DATEFIRST – Legen Sie den ersten Tag der Woche in SQL Server fest

In SQL Server können Sie SET DATEFIRST verwenden um den ersten Tag der Woche einzustellen.

Der erste Wochentag kann je nach verwendeter Sprache unterschiedlich sein. Der Standardwert für us_English ist beispielsweise 7 (Sonntag), während der Standardwert für Deutsch (Deutsch) 1 ist (Montag).

Dieser Artikel zeigt, wie man den ersten Tag der Woche ändert, ohne die Sprache zu ändern.

Syntax

Zunächst sieht die Syntax so aus:

SET DATEFIRST { number | @number_var }

Wobei number | @number_var ist eine Ganzzahl, die den ersten Tag der Woche angibt. Dies ist eine Zahl zwischen 1 und 7.

Die folgende Tabelle zeigt die Zuordnung zwischen der Zahl und dem Wochentag.

Wert Erster Wochentag ist
1 Montag
2 Dienstag
3 Mittwoch
4 Donnerstag
5 Freitag
6 Samstag
7 Sonntag

Also ein Wert von sagen wir 3 , würde Mittwoch als ersten Tag der Woche festlegen.

Beispiel 1 – Grundlegende Verwendung

Hier ist ein Beispiel, um die Syntax zu demonstrieren.

SET DATEFIRST 1;

Dadurch wird der erste Tag der Woche auf Montag festgelegt (aus dem obigen Diagramm können wir ersehen, dass ein Wert von 1 Karten bis Montag).

Wir können die aktuelle Einstellung anzeigen, indem wir @@DATEFIRST verwenden um den aktuellen Wert von SET DATEFIRST zurückzugeben .

SELECT @@DATEFIRST AS 'Result';

Ergebnis:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Beispiel 2 – Überschreiben der Spracheinstellung

Dieses Beispiel zeigt, wie der SET DATEFIRST Einstellung passt zu den Spracheinstellungen.

SET LANGUAGE us_english;  
SELECT 
    @@LANGUAGE AS 'LANGUAGE Before',
    @@DATEFIRST AS 'DATEFIRST Before';

SET DATEFIRST 1;
SELECT
    @@LANGUAGE AS 'LANGUAGE After',
    @@DATEFIRST AS 'DATEFIRST After';

Ergebnis:

+-------------------+--------------------+
| LANGUAGE Before   | DATEFIRST Before   |
|-------------------+--------------------|
| us_english        | 7                  |
+-------------------+--------------------+
Changed language setting to us_english.
+------------------+-------------------+
| LANGUAGE After   | DATEFIRST After   |
|------------------+-------------------|
| us_english       | 1                 |
+------------------+-------------------+

Wir können also sehen, dass die Sprache dieselbe bleibt, aber der erste Tag der Woche sich geändert hat.

Dieses Beispiel verwendet SET LANGUAGE um die Sprache der aktuellen Sitzung festzulegen (die, wie erwähnt, verwendet wird, um den ersten Tag der Woche zu bestimmen). Die Spracheinstellung legt implizit auch das Datumsformat fest. Bei Bedarf können Sie SET DATEFORMAT verwenden um diese Einstellung für das Datumsformat zu überschreiben.

Um zu sehen, was DATEFIRST ist Einstellungen jeder Sprache zugeordnet sind, finden Sie hier eine Liste aller Sprachen und zugehörigen Datumsformate in SQL Server 2017.

Sie können auch die sp_helplanguage verwenden gespeicherte Prozedur, um diese Liste zurückzugeben. Lesen Sie dazu So finden Sie die Datumsformate, die für eine bestimmte Sprache in SQL Server (T-SQL) verwendet werden.