sql >> Databáze >  >> RDS >> Sqlserver

SET DATEFIRST – Nastavte první den v týdnu na SQL Serveru

V SQL Server můžete použít SET DATEFIRST pro nastavení prvního dne týdne.

První den v týdnu se může lišit v závislosti na používaném jazyce. Například výchozí pro us_English je 7 (neděle), zatímco výchozí hodnota pro němčinu (němčina) je 1 (pondělí).

Tento článek ukazuje, jak změnit první den v týdnu bez změny jazyka.

Syntaxe

Za prvé, syntaxe vypadá takto:

SET DATEFIRST { number | @number_var }

Kde number | @number_var je celé číslo, které označuje první den v týdnu. Toto je číslo od 1 do 7.

Následující tabulka ukazuje mapování mezi číslem a dnem v týdnu.

Hodnota První den v týdnu je
1 pondělí
2 úterý
3 středa
4 Čtvrtek
5 Pátek
6 Sobota
7 Neděle

Takže hodnota řekněme 3 , nastaví středu jako první den v týdnu.

Příklad 1 – Základní použití

Zde je příklad pro demonstraci syntaxe.

SET DATEFIRST 1;

Tím se nastaví první den v týdnu na pondělí (z výše uvedeného grafu můžeme vidět, že hodnota 1 mapy do pondělí).

Aktuální nastavení můžeme zobrazit pomocí @@DATEFIRST vrátí aktuální hodnotu SET DATEFIRST .

SELECT @@DATEFIRST AS 'Result';

Výsledek:

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

Příklad 2 – Přepsání jazykového nastavení

Tento příklad ukazuje, jak SET DATEFIRST nastavení odpovídá nastavení jazyka.

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';

Výsledek:

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

Takže vidíme, že jazyk zůstává stejný, ale první den v týdnu se změnil.

Tento příklad používá SET LANGUAGE k nastavení jazyka aktuální relace (který, jak již bylo zmíněno, se používá k určení prvního dne v týdnu). Nastavení jazyka také implicitně nastavuje formát data. V případě potřeby můžete použít SET DATEFORMAT pro přepsání tohoto nastavení formátu data.

Chcete-li zjistit, co DATEFIRST mapování nastavení pro každý jazyk, zde je seznam všech jazyků a souvisejících formátů data v SQL Server 2017.

Můžete také použít sp_helplanguage uloženou proceduru k vrácení tohoto seznamu. Chcete-li to provést, přečtěte si článek Jak najít formáty data používané pro konkrétní jazyk na serveru SQL Server (T-SQL).


  1. Neplatný měsíc na příkazu INSERT

  2. Odešlete aplikaci s databází

  3. Jak vytvořit databázi MySQL a nastavit oprávnění

  4. Geniální nástroj pro změnu hesla SQL pro resetování hesla SQL