@@DATEFIRST (Transact-SQL)
更新日期: 2006 年 4 月 14 日
针对会话返回 SET DATEFIRST 的当前值。
Transact-SQL 语法约定
![](http://i.msdn.microsoft.com/Global/Images/clear.gif)
@@DATEFIRST
![](http://i.msdn.microsoft.com/Global/Images/clear.gif)
![](http://i.msdn.microsoft.com/Global/Images/clear.gif)
SET DATEFIRST 表示指定的每周的第一天。美国英语中默认 7 对应星期日。
语言设置会影响日期信息。在以下示例中,语言首先设置为 italian
。SELECT @@DATEFIRST
将返回 1
。然后将语言设置为 us_english
。SELECT @@DATEFIRST
将返回 7
。
复制代码
SET LANGUAGE italian GO SELECT @@DATEFIRST GO SET LANGUAGE us_english GO SELECT @@DATEFIRST
![](http://i.msdn.microsoft.com/Global/Images/clear.gif)
以下示例将每周的第一天设为 5
(星期五),并假定当天(Today
)是星期六。该 SELECT
语句返回 DATEFIRST
值和当天是此周的第几天。
复制代码
SET DATEFIRST 5 SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'
下面是结果集:
复制代码
1st Day Today ---------------- -------------- 5 2
SET DATEFIRST (Transact-SQL)
将一周的第一天设置为从 1 到 7 的一个数字。
Transact-SQL 语法约定
语法
SET DATEFIRST { number | @number_var }参数
number | @number_var
指示一周的第一天的一个整数。可以是下列值之一。
值 一周的第一天是 1
星期一
2
星期二
3
星期三
4
星期四
5
星期五
6
星期六
7(默认值,美国英语)
星期日
备注
可以使用 @@DATEFIRST 函数查看 SET DATEFIRST 的当前设置。
SET DATEFIRST 的设置是在执行或运行时设置,而不是在分析时设置。
权限
要求具有 public 角色的成员身份。
示例
以下示例显示了某个日期值对应的一周中的一天,并显示了更改
DATEFIRST
设置的效果。复制代码-- SET DATEFIRST to U.S. English default value of 7. SET DATEFIRST 7; SELECT CAST('1/1/1999' AS DATETIME) AS SelectDate, DATEPART(dw, '1/1/1999') AS DayOfWeek; -- January 1, 1999 is a Friday. Because the U.S. English default -- specifies Sunday as the first day of the week, DATEPART of 1/1/1999 -- (Friday) yields a value of 6, because Friday is the sixth day of the -- week when starting with Sunday as day 1. SET DATEFIRST 3; -- Because Wednesday is now considered the first day of the week, -- DATEPART should now show that 1/1/1999 (a Friday) is the third day of the -- week. The following DATEPART function should return a value of 3. SELECT CAST('1/1/1999' AS DATETIME) AS SelectDate, DATEPART(dw, '1/1/1999') AS DayOfWeek; GO