In SQL Server kunt u SET DATEFIRST
. gebruiken om de eerste dag van de week in te stellen.
De eerste dag van de week kan verschillen, afhankelijk van de taal die wordt gebruikt. De standaard voor us_English is bijvoorbeeld 7 (zondag), terwijl de standaard voor Deutsch (Duits) 1 is (maandag).
Dit artikel laat zien hoe u de eerste dag van de week kunt wijzigen zonder de taal te wijzigen.
Syntaxis
Ten eerste gaat de syntaxis als volgt:
SET DATEFIRST { number | @number_var }
Waar number | @number_var
is een geheel getal dat de eerste dag van de week aangeeft. Dit is een getal tussen 1 en 7.
De volgende tabel toont de toewijzing tussen het nummer en de dag van de week.
Waarde | Eerste dag van de week is |
---|---|
1 | Maandag |
2 | Dinsdag |
3 | Woensdag |
4 | Donderdag |
5 | Vrijdag |
6 | Zaterdag |
7 | Zondag |
Dus een waarde van bijvoorbeeld 3
, zou woensdag instellen als de eerste dag van de week.
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld om de syntaxis te demonstreren.
SET DATEFIRST 1;
Dit stelt de eerste dag van de week in op maandag (we kunnen in de bovenstaande grafiek zien dat een waarde van 1
kaarten naar maandag).
We kunnen de huidige instelling bekijken met @@DATEFIRST
om de huidige waarde van SET DATEFIRST
te retourneren .
SELECT @@DATEFIRST AS 'Result';
Resultaat:
+----------+ | Result | |----------| | 1 | +----------+
Voorbeeld 2 – Overschrijf de taalinstelling
Dit voorbeeld laat zien hoe de SET DATEFIRST
instelling past bij de taalinstellingen.
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';
Resultaat:
+-------------------+--------------------+ | LANGUAGE Before | DATEFIRST Before | |-------------------+--------------------| | us_english | 7 | +-------------------+--------------------+ Changed language setting to us_english. +------------------+-------------------+ | LANGUAGE After | DATEFIRST After | |------------------+-------------------| | us_english | 1 | +------------------+-------------------+
We kunnen dus zien dat de taal hetzelfde blijft, maar de eerste dag van de week is veranderd.
Dit voorbeeld gebruikt SET LANGUAGE
om de taal van de huidige sessie in te stellen (die zoals vermeld wordt gebruikt om de eerste dag van de week te bepalen). De taalinstelling stelt impliciet ook het datumformaat in. Indien nodig kunt u SET DATEFORMAT
gebruiken om deze instelling voor de datumnotatie te negeren.
Om te zien wat DATEFIRST
instellingen toewijzen aan elke taal, hier is een lijst met alle talen en bijbehorende datumnotaties in SQL Server 2017.
U kunt ook de sp_helplanguage
. gebruiken opgeslagen procedure om die lijst te retourneren. Zie hiervoor De datumnotaties vinden die worden gebruikt voor een specifieke taal in SQL Server (T-SQL).