SET DATEFIRST and @@DATEFIRST control and report the first day of the week in SQL Server. The master database’s syslanguages table has a DateFirst column that defines the first day of the week for a particular language. SQL Server with US English as default language, SQL Server sets DATEFIRST to 7 (Sunday) by default. We can reset any day as first day of the week using

SET DATEFIRST 5
This will set Friday as first day of week.
@@DATEFIRST returns the current value, for the session, of SET DATEFIRST.
SET LANGUAGE italian GO SELECT @@DATEFIRST GO ----This will return result as 1(Monday) SET LANGUAGE us_english GO SELECT @@DATEFIRST GO ----This will return result as 7(Sunday)
In this way @@DATEFIRST and SET DATEFIRST are related. When I learned about this feature I was very glad as our company has started to server global clients and simple feature like this helps a lot to avoid confusion.
Published by Pinal Dave on SQLAuthority. More of my work at pinaldave.com.
Discover more from SQL Authority with Pinal Dave
Subscribe to get the latest posts sent to your email.





4 Comments. Leave new
Hi Pinal
I am trying to set DATEFIRST globally for a given database. Is there a way to do this? Thanks for your time
Pavan
Hi Pinal,
I am trying to set DATEFIRST globally for a given database. Is there a way to do this?
Thanks.
Hi Pinal,
I am trying to set DATEFIRST globally for a given database. Is there a way to do this?
Thanks.
I dont think it is possible. It only affects the current session