SET DATEFIRST (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

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

Para ter uma visão geral de todas as funções e tipos de dados de data e hora do Transact-SQL, confira Funções e tipos de dados de data e hora (Transact-SQL).

Convenções de sintaxe de Transact-SQL

Sintaxe

-- Syntax for SQL Server and Azure SQL Database  
  
SET DATEFIRST { number | @number_var }   
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse  
  
SET DATEFIRST 7 ;  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

number | @number_var
É um inteiro que indica o primeiro dia da semana. Pode ser um dos seguintes valores.

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

Comentários

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

A configuração de SET DATEFIRST é definida no momento da execução e não no momento da análise.

A especificação de SET DATEFIRST não tem nenhum efeito em DATEDIFF. DATEDIFF sempre usa Domingo como o primeiro dia da semana par assegurar que a função seja determinística.

Permissões

Requer associação à função pública .

Exemplos

O exemplo a seguir exibe o dia da semana para obter um valor de data e mostra os efeitos de alterar a configuração 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  

Consulte Também

Instruções SET (Transact-SQL)