一尘不染

SQL DATEPART(dw,date)需要星期一= 1和星期日= 7

sql

我有一个查询,获取日期的 WeekDay ,但默认情况下:

  • 星期日= 1

  • Moday = 2

  • 等等。

该函数是:

DATEPART(dw,ads.date) as weekday

我需要这样的结果:

  • 星期日= 7

  • 星期一= 1

  • 等等。

有没有捷径可以做到这一点?否则我将不得不做一个CASE statement


阅读 216

收藏
2021-03-17

共1个答案

一尘不染

您可以使用类似以下的公式:

(weekday + 5) % 7 + 1

如果您决定使用此功能,则应通过一些示例来说服自己确信它确实可以满足您的要求。

另外 :为了不受DATEFIRST变量的影响(可以将其设置为1到7之间的任何值),实际公式为:

(weekday  + @@DATEFIRST + 5) % 7 + 1
2021-03-17