Partilhar via


DEFINIR DATEFIRST (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Base de dados SQL no Microsoft Fabric

Define o primeiro dia da semana para um número de 1 a 7.

Para obter uma visão geral de todos os tipos e funções de dados de data e hora Transact-SQL, consulte Tipos de dados e funções de data e hora (Transact-SQL).

Transact-SQL convenções de sintaxe

Sintaxe

Sintaxe do SQL Server e do Banco de Dados SQL do Azure

SET DATEFIRST { number | @number_var }   

Sintaxe para o Azure Synapse Analytics e o Parallel Data Warehouse

SET DATEFIRST 7 ;  

Arguments

número | @number_var

É um número inteiro que indica o primeiro dia da semana. Pode ser um dos seguintes valores.

Valor O primeiro dia da semana é
1 Segunda-feira
2 Terça-feira
3 Quarta-feira
4 Quinta-feira
5 Sexta-feira
6 Sábado
7 (padrão, inglês dos EUA) Domingo

Observações

Para ver a configuração atual de SET DATEFIRST, use a função @@DATEFIRST .

A configuração de SET DATEFIRST é definida em tempo de execução ou execução e não em tempo de análise.

Especificar SET DATEFIRST não tem efeito em DATEDIFF. DATEDIFF sempre usa o domingo como o primeiro dia da semana para garantir que a função seja determinística.

Como todas as instruções SET, SET DATEFIRST afeta a sessão atual.

Permissions

Requer a participação na função pública.

Examples

O exemplo a seguir exibe o dia da semana para um valor de data e mostra os efeitos da alteração da DATEFIRST configuração.

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