暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SET DATEFIRST (Transact-SQL)

Ty3306 2024-06-05
83

SET DATEFIRST (Transact-SQL)

  •  

将一周的第一天设置为从 1 到 7 的一个数字。

有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间数据类型及函数 (Transact-SQL)。

Transact-SQL 语法约定

语法

SQL Server 和 Azure SQL 数据库的语法

syntaxsql
SET DATEFIRST { number | @number_var }   

Azure Synapse Analytics 和并行数据仓库的语法

syntaxsql
SET DATEFIRST 7 ;  

 备注

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。

参数

number | @number_var

指示一周的第一天的一个整数。 可以是下列值之一。

一周的第一天是
1星期一
2星期二
3星期三
4星期四
5星期五
6星期六
7 (默认值,美国英语)星期日

注解

若要查看 SET DATEFIRST 的当前设置,请使用 @@DATEFIRST 函数。

SET DATEFIRST 的设置是在执行或运行时设置,而不是在分析时设置。

指定 SET DATEFIRST 对 DATEDIFF 不起作用。 DATEDIFF 始终使用星期日作为每周的第一天,以确保函数是确定性的。

与所有 标准版T 语句一样,标准版T DATEFIRST 会影响当前会话。

权限

要求 公共 角色具有成员身份。

示例

以下示例显示了某个日期值对应的一周中的一天,并显示了更改 DATEFIRST 设置的效果。

SQL
-- SET DATEFIRST to U.S. English default value of 7.  
SET DATEFIRST 7;  
  
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate  
    ,DATEPART(dw, '1999-1-1') 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 1999-1-1  
-- (Friday) yields a value of 6, because Friday is the sixth day of the   
-- week when you start with Sunday as day 1.  
  
SET DATEFIRST 3;  
-- Because Wednesday is now considered the first day of the week,  
-- DATEPART now shows that 1999-1-1 (a Friday) is the third day of the   
-- week. The following DATEPART function should return a value of 3.  
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate  
    ,DATEPART(dw, '1999-1-1') AS DayOfWeek;  
GO  
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论