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