Dela via


ANGE DATEFIRST (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Anger den första dagen i veckan till ett tal från 1 till 7.

En översikt över alla datatyper och funktioner för datum och tid Transact-SQL finns i Datatyper och funktioner för datum och tid (Transact-SQL).

Transact-SQL syntaxkonventioner

Syntax

Syntax för SQL Server och Azure SQL Database

SET DATEFIRST { number | @number_var }   

Syntax för Azure Synapse Analytics och Parallel Data Warehouse

SET DATEFIRST 7 ;  

Arguments

nummer | @number_var

Är ett heltal som anger den första dagen i veckan. Det kan vara något av följande värden.

Värde Första dagen i veckan är
1 Måndag
2 Tisdag
3 Onsdag
4 Torsdag
5 Fredag
6 lördag
7 (standard, amerikansk engelska) söndag

Anmärkningar

Om du vill se den aktuella inställningen för SET DATEFIRST använder du funktionen @@DATEFIRST .

Inställningen SET DATEFIRST anges vid körnings- eller körningstid och inte vid parsningstid.

Att ange SET DATEFIRST har ingen effekt på DATEDIFF. DATEDIFF använder alltid söndag som den första dagen i veckan för att säkerställa att funktionen är deterministisk.

Liksom alla SET-instruktioner påverkar SET DATEFIRST den aktuella sessionen.

Permissions

Kräver medlemskap i den offentliga rollen.

Examples

I följande exempel visas veckodagen för ett datumvärde och effekterna av att ändra inställningen DATEFIRST .

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