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).