基本上我希望能够为一年中的每个星期选择星期一和星期五。
例如,本周即将到来的我想要 9/29/2014 和 10/3/2014,但我想要一年中的每个星期。
最佳答案
您可以使用带有数字的合适表,例如 master..spt_values 表作为范围生成的基础:
;WITH dates AS (
SELECT DATEADD(DAY,number,CAST('2014-01-01' AS DATE)) d
FROM master..spt_values WHERE TYPE = 'p'
AND number < 366
)
SELECT
Week = DATEPART(WEEK, d),
DayOfWeek = DATENAME(dw, d),
Date = d
FROM dates
WHERE DATENAME(dw, d) IN ('Monday', 'Friday')
-- or use datepart instead as datename might be specific to language
-- WHERE DATEPART(dw, d) IN (2,6)
示例输出:
Week DayOfWeek Date
----------- ------------------------------ ----------
1 Friday 2014-01-03
2 Monday 2014-01-06
2 Friday 2014-01-10
3 Monday 2014-01-13
3 Friday 2014-01-17
4 Monday 2014-01-20
4 Friday 2014-01-24
5 Monday 2014-01-27
5 Friday 2014-01-31
关于sql - 如何选择一年中的每个星期一日期和每个星期五日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26088814/