Question: What is the difference between @@DATEFIRST and SET DATEFIRST with respect to SQL Server?
Answer: SQL Server with US English as default language, SQL Server sets DATEFIRST to 7 (Sunday) by default. We can reset any day as the first day of the week using
SET DATEFIRST 5
This will set Friday as the first day of the 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.
Reference: Pinal Dave (https://blog.sqlauthority.com)