I SQL Server kan du bruge SET DATEFIRST
for at indstille den første dag i ugen.
Ugens første dag kan være anderledes afhængigt af det sprog, der bruges. For eksempel er standarden for us_English 7 (søndag), hvorimod standarden for Deutsch (tysk) er 1 (mandag).
Denne artikel viser, hvordan du ændrer den første dag i ugen uden at ændre sproget.
Syntaks
For det første går syntaksen sådan her:
SET DATEFIRST { number | @number_var }
Hvor number | @number_var
er et heltal, der angiver den første dag i ugen. Dette er et tal mellem 1 og 7.
Følgende tabel viser kortlægningen mellem nummeret og ugedagen.
Værdi | Ugens første dag er |
---|---|
1 | mandag |
2 | tirsdag |
3 | onsdag |
4 | Torsdag |
5 | fredag |
6 | Lørdag |
7 | søndag |
Så en værdi på f.eks. 3
, ville angive onsdag som den første dag i ugen.
Eksempel 1 – Grundlæggende brug
Her er et eksempel til at demonstrere syntaksen.
SET DATEFIRST 1;
Dette indstiller den første dag i ugen til mandag (vi kan se fra ovenstående diagram, at en værdi på 1
kort til mandag).
Vi kan se den aktuelle indstilling ved at bruge @@DATEFIRST
for at returnere den aktuelle værdi af SET DATEFIRST
.
SELECT @@DATEFIRST AS 'Result';
Resultat:
+----------+ | Result | |----------| | 1 | +----------+
Eksempel 2 – Tilsidesæt sprogindstillingen
Dette eksempel viser, hvordan SET DATEFIRST
indstilling passer til sprogindstillingerne.
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';
Resultat:
+-------------------+--------------------+ | LANGUAGE Before | DATEFIRST Before | |-------------------+--------------------| | us_english | 7 | +-------------------+--------------------+ Changed language setting to us_english. +------------------+-------------------+ | LANGUAGE After | DATEFIRST After | |------------------+-------------------| | us_english | 1 | +------------------+-------------------+
Så vi kan se, at sproget forbliver det samme, men den første dag i ugen er ændret.
Dette eksempel bruger SET LANGUAGE
for at indstille sproget for den aktuelle session (der som nævnt bruges til at bestemme den første dag i ugen). Sprogindstillingen sætter også implicit datoformatet. Hvis det er nødvendigt, kan du bruge SET DATEFORMAT
for at tilsidesætte denne indstilling for datoformatet.
For at se hvad DATEFIRST
indstillinger er knyttet til hvert sprog. Her er en liste over alle sprog og tilknyttede datoformater i SQL Server 2017.
Du kan også bruge sp_helplanguage
gemt procedure for at returnere denne liste. For at gøre dette skal du se Sådan finder du de datoformater, der bruges til et bestemt sprog i SQL Server (T-SQL).