O SQL Server tem uma DATEFIRST
configuração que determina o primeiro dia da semana para cálculos de data.
SELECT DATENAME(weekday, '2025-04-23') AS WeekdayName -- Wednesday
SET DATEFIRST 7 -- Sunday
SELECT DATEPART(weekday, '2025-04-23') AS WeekdayNumber -- 4
SET DATEFIRST 1 -- Monday
SELECT DATEPART(weekday, '2025-04-23') AS WeekdayNumber -- 3
De acordo com a documentação da Microsoft , o valor padrão de DATEFIRST
em inglês dos EUA é 7 (domingo).
Se o SQL Server estiver configurado com um idioma diferente do inglês ou dos EUA, o valor padrão será DATEFIRST
diferente de 7? Em caso afirmativo, como verifico os valores padrão para diferentes idiomas?
Sim, elas são diferentes.
Você pode obter a configuração da sessão atual em
@@DATEFIRST
. Se quiser ver o padrão dos diferentes idiomas, consultesys.syslanguages
:No SQL Server 2022, isso fornece os seguintes resultados:
db<>violino