Ali*_*ese 3 sql-server sql-server-2008 ssrs-2008
我需要在给定的日期范围内显示所有星期一的日期.
例如,如果我的开始日期是01/05/2015结束日期31/05/2015,那么我需要显示
04/05/2015
11/05/2015
18/05/2015
25/05/2015
Run Code Online (Sandbox Code Playgroud)
这怎么可能?
此过程独立于区域和语言.
请注意第一行SET DATEFIRST 1.
SET DATEFIRST 1; -- First day of the week is set to monday
DECLARE @DateFrom DateTime ='20150601', @DateTo DateTime = '20150630' ;
WITH CTE(dt)
AS
(
SELECT @DateFrom
UNION ALL
SELECT DATEADD(d, 1, dt) FROM CTE
WHERE dt < @DateTo
)
SELECT dt FROM CTE where datepart ("dw", dt) = 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5327 次 |
| 最近记录: |