Sdílet prostřednictvím


STANOVTE DATUM NEJPRVE (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Nastaví první den v týdnu na číslo od 1 do 7.

Přehled všech datových typů a funkcí Transact-SQL data a času najdete v tématu datové typy a funkce data a času (Transact-SQL).

Transact-SQL konvence syntaxe

Syntaxe

Syntaxe pro SQL Server a Azure SQL Database

SET DATEFIRST { number | @number_var }   

Syntaxe pro Azure Synapse Analytics a paralelní datový sklad

SET DATEFIRST 7 ;  

Arguments

číslo | @number_var

Je celé číslo, které označuje první den v týdnu. Může to být jedna z následujících hodnot.

Hodnota První den v týdnu je
1 Pondělí
2 Úterý
3 Středa
4 Čtvrtek
5 Pátek
6 Sobota
7 (výchozí, angličtina USA) Neděle

Poznámky

Pokud chcete zobrazit aktuální nastavení FUNKCE SET DATEFIRST, použijte funkci @@DATEFIRST .

Nastavení set DATEFIRST je nastaveno při spuštění nebo spuštění a ne v době analýzy.

Určení funkce SET DATEFIRST nemá žádný vliv na FUNKCI DATEDIFF. Funkce DATEDIFF vždy používá neděli jako první den v týdnu, aby byla funkce deterministická.

Stejně jako všechny příkazy SET má funkce SET DATEFIRST vliv na aktuální relaci.

Povolení

Vyžaduje členství ve veřejné roli.

Examples

Následující příklad zobrazí den v týdnu pro hodnotu data a ukazuje účinky změny DATEFIRST nastavení.

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