sql >> Database >  >> RDS >> Sqlserver

SET DATEFIRST - Stel de eerste dag van de week in SQL Server in

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


  1. Hoe u de laatste dag van de maand voor een bepaalde datum kunt vinden in MySQL

  2. Een database-e-mailprofiel bijwerken in SQL Server (T-SQL)

  3. Is MS-SQL EN/OF voorwaardelijk (kortsluitingsevaluatie uitvoeren)?

  4. Hoe de datum in een ander formaat in orakel weer te geven