Delen via


SET DATEFIRST (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Hiermee stelt u de eerste dag van de week in op een getal van 1 tot en met 7.

Zie datum- en tijdgegevenstypen en -functies (Transact-SQL)voor een overzicht van alle Transact-SQL datum- en tijdgegevenstypen en -functies.

Transact-SQL syntaxis-conventies

Syntaxis

Syntaxis voor SQL Server en Azure SQL Database

SET DATEFIRST { number | @number_var }   

Syntaxis voor Azure Synapse Analytics en Parallel Data Warehouse

SET DATEFIRST 7 ;  

Arguments

getal | @number_var

Is een geheel getal dat de eerste dag van de week aangeeft. Dit kan een van de volgende waarden zijn.

Waarde Eerste dag van de week is
1 Maandag
2 Dinsdag
3 Woensdag
4 Donderdag
5 Vrijdag
6 Zaterdag
7 (standaard, Amerikaans Engels) Zondag

Opmerkingen

Als u de huidige instelling van SET DATEFIRST wilt zien, gebruikt u de functie @@DATEFIRST .

De instelling van SET DATEFIRST wordt ingesteld bij uitvoering of uitvoeringstijd en niet op parseringstijd.

Het opgeven van SET DATEFIRST heeft geen effect op DATEDIFF. DATEDIFF gebruikt altijd zondag als de eerste dag van de week om ervoor te zorgen dat de functie deterministisch is.

Net als bij alle SET-instructies is SET DATEFIRST van invloed op de huidige sessie.

Permissions

Vereist lidmaatschap van de openbare rol.

Voorbeelden

In het volgende voorbeeld wordt de dag van de week voor een datumwaarde weergegeven en worden de effecten van het wijzigen van de DATEFIRST instelling weergegeven.

-- SET DATEFIRST to U.S. English default value of 7.  
SET DATEFIRST 7;  
  
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate  
    ,DATEPART(dw, '1999-1-1') AS DayOfWeek;  
-- January 1, 1999 is a Friday. Because the U.S. English default   
-- specifies Sunday as the first day of the week, DATEPART of 1999-1-1  
-- (Friday) yields a value of 6, because Friday is the sixth day of the   
-- week when you start with Sunday as day 1.  
  
SET DATEFIRST 3;  
-- Because Wednesday is now considered the first day of the week,  
-- DATEPART now shows that 1999-1-1 (a Friday) is the third day of the   
-- week. The following DATEPART function should return a value of 3.  
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate  
    ,DATEPART(dw, '1999-1-1') AS DayOfWeek;  
GO