SQL - @@DATEFIRST Function



The SQL @@DATEFIRST function is used to retrieve the first day of the week which is set by SET DATEFIRST. The SET DATEFIRST is used to set the first day of a week. The first-day parameter (n) is set using one of the numbers from 1 to 7, where each number is mapped to a day of the week.

The day numbers will be as follows −

  • Monday − 1
  • Tuesday − 2
  • Wednesday − 3
  • Thursday − 4
  • Friday − 5
  • Saturday − 6
  • Sunday − 7

Syntax

Following is the syntax of the SQL @@DATEFIRST function −

@@DATEFIRST

Parameters

This function does not accept any parameters.

Example

In the following example, we are trying to set the first day of the week value to 5 i.e. Friday −

Note − The SET DATAFIRST n specifies the first day (Monday, Tuesday, Wednesday, etc.) of the week. The value of n can be from 1 to 7.

SQL> SET DATEFIRST 5; -- (Friday)

SELECT @@DATEFIRST AS FIRST_DAY;

Output

If we execute the above query, the result is produced as follows −

+------------+
| FIRST_DAY  |
+------------+
| 5          |
+------------+

Example

The setting of language impacts the character string interpretation as SQL Server converts those strings to date values for database storage.

  • It impacts the display of date values stored in the database.
  • It does not impact the storage format of date data.

Here, we are trying to set the language to Italian using the following query −

SQL> SET LANGUAGE Italian;  
SELECT @@DATEFIRST AS RESULT;  

Output

When we execute the above query, the output is obtained as follows −

+----------+
| RESULT   |
+----------+
| 1        |
+----------+

Example

Here, we are trying to set the language to us_english using the following query −

SQL> SET LANGUAGE us_english;  
SELECT @@DATEFIRST AS RESULT;  

Output

On executing the above query, the output is displayed as follows −

+---------+
| RESULT  |
+---------+
| 7       |
+---------+

Example

Here, we are trying to set the first day of the week value to 7 i.e. Sunday, and assume that the current day, TODAY falls on Tuesday.

The below SELECT statement returns the DATEFIRST value and the number of the current day of the week.

SQL> SET DATEFIRST 7;
SELECT @@DATEFIRST AS 'FIRST DAY';

SELECT GETDATE() as 'TODAY_DATE', DATEPART(dw, SYSDATETIME()) AS 'TODAY';

Output

If we execute the program, the result is produced as follows −

+-------------+
| FIRST_DAY   |
+-------------+
| 7           |
+-------------+

+---------------------------+---------+
| TODAY_DATE                | TODAY   |
+---------------------------+---------+
| 2023-02-21 14:07:42.010   | 3       |
+---------------------------+---------+
sql-date-functions.htm
Advertisements