Udostępnij za pomocą


USTAW DATĘ (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Ustawia pierwszy dzień tygodnia na liczbę z zakresu od 1 do 7.

Aby zapoznać się z omówieniem wszystkich typów danych i funkcji daty i godziny Transact-SQL, zobacz Typy danych i funkcje daty i godziny (Transact-SQL).

Transact-SQL konwencje składni

Składnia

Składnia dla programu SQL Server i usługi Azure SQL Database

SET DATEFIRST { number | @number_var }   

Składnia dla usług Azure Synapse Analytics i Parallel Data Warehouse

SET DATEFIRST 7 ;  

Arguments

numer | @number_var

Jest liczbą całkowitą wskazującą pierwszy dzień tygodnia. Może to być jedna z następujących wartości.

Wartość Pierwszy dzień tygodnia to
1 Poniedziałek
2 Wtorek
3 Środa
4 Czwartek
5 Piątek
6 Sobota
7 (ustawienie domyślne, angielski w Stanach Zjednoczonych) Niedziela

Uwagi

Aby wyświetlić bieżące ustawienie set DATEFIRST, użyj funkcji @@DATEFIRST .

Ustawienie SET DATEFIRST jest ustawione w czasie wykonywania lub wykonywania, a nie w czasie analizy.

Określanie ustawienia SET DATEFIRST nie ma wpływu na DATEDIFF. FUNKCJA DATEDIFF zawsze używa niedzieli jako pierwszego dnia tygodnia, aby upewnić się, że funkcja jest deterministyczna.

Podobnie jak w przypadku wszystkich instrukcji SET, funkcja SET DATEFIRST wpływa na bieżącą sesję.

Permissions

Wymaga członkostwa w roli publicznej .

Przykłady

Poniższy przykład przedstawia dzień tygodnia dla wartości daty i pokazuje efekty zmiany DATEFIRST ustawienia.

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