枚举t-sql中的星期几

apr*_*ros 2 sql t-sql sql-server

有人知道如何在T-SQL中枚举所有星期的日子,所以我们在输出中有一个字符串,如:'星期日,星期一,星期二......"

Qua*_*noi 6

WITH    week (dn) AS
        (
        SELECT  1
        UNION ALL
        SELECT  dn + 1
        FROM    week
        WHERE   dn < 7
        )
SELECT  DATENAME(dw, dn + 5) 
FROM    week
Run Code Online (Sandbox Code Playgroud)

更换dn + 5dn + 6,如果您从本周开始Monday.

如果您需要单个逗号分隔的字符串而不是集合,请使用以下命令:

WITH    week (dn, dname) AS
        (
        SELECT  1, CAST(DATENAME(dw, 6) AS NVARCHAR(MAX))
        UNION ALL
        SELECT  dn + 1, dname + ', ' + DATENAME(dw, dn + 6)
        FROM    week
        WHERE   dn < 7
        )
SELECT  dname
FROM    week
WHERE   dn = 7
Run Code Online (Sandbox Code Playgroud)