SQL @@DATEFIRST函数
SQL的 @@DATEFIRST 函数用于检索由SET DATEFIRST设置的一周中的第一天。SET DATEFIRST用于设置一周的第一天。第一天参数( n )可以使用1到7的数字之一设置,其中每个数字都与一周的某一天相对应。
天数的编号如下所示:
- Monday(星期一) – 1
- Tuesday(星期二) – 2
- Wednesday(星期三) – 3
- Thursday(星期四) – 4
- Friday(星期五) – 5
- Saturday(星期六) – 6
- Sunday(星期日) – 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,即星期日,并假设当前日期为周二。
下面的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 |
+---------------------------+---------+