SQL Server SET DATEFIRST范围

Pri*_*lon 6 sql sql-server

我正在使用SS 2005

我见过示例代码

DECLARE @restore = SELECT @@DATEFIRST
SET DATEFIRST 1
SELECT datepart(dw,ADateTimeColumn) as MondayBasedDate,.... FROM famousShipwrecks --
SET DATEFIRST @restore
Run Code Online (Sandbox Code Playgroud)

假设在查询运行时另一个查询设置DATEFIRST?

如果另一个查询依赖于datefirst为7(例如)并且没有设置它,并且在我的查询运行时运行,那么他的问题是不设置它?或者是否有更好的方法来编写依赖于给定日期为第1天的查询.

And*_*mar 17

@@ DATEFIRST是您的会话的本地.您可以通过打开Sql Server Management Studio(SSMS)中的选项卡来验证它.在第一个选项卡中执行此代码:

 SET DATEFIRST 5
Run Code Online (Sandbox Code Playgroud)

并验证它不会影响其他选项卡:

select @@datefirst
Run Code Online (Sandbox Code Playgroud)

请参阅此MSDN文章.