sql-servert-sqlconfiguration

What are DATEFIRST's default values for non-US English languages in SQL Server?


SQL Server has a DATEFIRST setting that determines the first day of the week for date calculations.

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

According to Microsoft's documentation, the default value of DATEFIRST in U.S. English is 7 (Sunday).

Microsoft documentation for DATEFIRST values

If SQL Server is configured with a non-English or non-US language, will the default value of DATEFIRST be something other than 7? If so, how do I check the default values for different languages?


Solution

  • Yes, they are different.

    You can get the current session's setting from @@DATEFIRST. If you want to see what the different languages default to, query sys.syslanguages:

    SELECT datefirst,
           name,
           alias
    FROM sys.syslanguages;
    

    In SQL Server 2022, this gives the following results:

    datefirst name alias
    7 us_english English
    1 Deutsch German
    1 Français French
    7 日本語 Japanese
    1 Dansk Danish
    1 Español Spanish
    1 Italiano Italian
    1 Nederlands Dutch
    1 Norsk Norwegian
    7 Português Portuguese
    1 Suomi Finnish
    1 Svenska Swedish
    1 čeština Czech
    1 magyar Hungarian
    1 polski Polish
    1 română Romanian
    1 hrvatski Croatian
    1 slovenčina Slovak
    1 slovenski Slovenian
    1 ελληνικά Greek
    1 български Bulgarian
    1 русский Russian
    1 Türkçe Turkish
    1 British British English
    1 eesti Estonian
    1 latviešu Latvian
    1 lietuvių Lithuanian
    7 Português (Brasil) Brazilian
    7 繁體中文 Traditional Chinese
    7 한국어 Korean
    7 简体中文 Simplified Chinese
    1 Arabic Arabic
    7 ไทย Thai
    1 norsk (bokmål) Bokmål

    db<>fiddle