SQL - @@DATEFIRST 函数



SQL 的@@DATEFIRST函数用于检索由SET DATEFIRST设置的一周的第一天。SET DATEFIRST用于设置一周的第一天。第一天参数(n)使用1到7之间的数字之一设置,其中每个数字都映射到一周中的某一天。

日期数字如下:

  • 星期一 - 1
  • 星期二 - 2
  • 星期三 - 3
  • 星期四 - 4
  • 星期五 - 5
  • 星期六 - 6
  • 星期日 - 7

语法

以下是SQL @@DATEFIRST函数的语法:

@@DATEFIRST

参数

此函数不接受任何参数。

示例

在下面的示例中,我们尝试将一周的第一天值设置为5,即星期五:

注意 - SET DATAFIRST n 指定一周的第一天(星期一、星期二、星期三等)。n 的值可以是 1 到 7。

SQL> SET DATEFIRST 5; -- (Friday)

SELECT @@DATEFIRST AS FIRST_DAY;

输出

如果执行上述查询,则结果如下:

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

示例

语言的设置会影响字符字符串的解释,因为SQL Server会将这些字符串转换为日期值以进行数据库存储。

  • 它会影响数据库中存储的日期值的显示。
  • 它不会影响日期数据的存储格式。

在这里,我们尝试使用以下查询将语言设置为意大利语

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

输出

执行上述查询后,将获得如下输出:

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

示例

在这里,我们尝试使用以下查询将语言设置为us_english

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

输出

执行上述查询后,将显示如下输出:

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

示例

在这里,我们尝试将一周的第一天值设置为7,即星期日,并假设当前日期TODAY是星期二。

下面的SELECT语句返回DATEFIRST值和当前一周的日期数字。

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

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

输出

如果我们执行程序,则结果如下:

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

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