在有条件的情况下,我想独立于本地设置来检查当前日期是否为星期日,因此我已完成:

DECLARE @IsSunday BIT

SELECT
    @IsSunday = CASE
                   WHEN DATEPART(DW, getdate() + @@DATEFIRST - 1) = 7
                      THEN 1
                      ELSE 0
                END

IF @IsSunday
BEGIN
  // Do some stuff
END


我需要有人确认我可以在任何本地设置下工作,例如具有英语配置和其他语言的SQL Server。

在西班牙语配置中,上面的代码有效。

最佳答案

选择任何星期日,例如20170910,然后计算该星期日与您需要检查的日期之间的天数差。
如果模7的结果为0,则您有一个星期日。

select case when datediff(day, '20170910', getdate()) % 7 = 0
         then 1
         else 0
       end;

10-07 23:55