如何从日期范围中获取一天?
例如: - 如果假设我的日期范围是2014年6月22日到2014年6月28日那么我想得到这个日期范围的星期一,即23/6月/ 2014年为星期一
答案 0 :(得分:1)
好的,我让这个为我工作。
declare @DateFrom DateTime = CONVERT(DATETIME, '22/06/2014', 103)
declare @DateTo DateTime = CONVERT(DATETIME, '28/06/2014', 103)
;WITH CTE(dt)
AS
(
Select @DateFrom
Union All
Select DATEADD(d,1,dt)FROM CTE
Where dt<@DateTo
)
select *,'Monday' as [Day] from cte where datename(dw,dt) = 'Monday'
答案 1 :(得分:0)
Select date
from table
where date between range1 and range2
and datename(mm,date) = 'Monday'
答案 2 :(得分:0)
SELECT MondayAfterRangeStart
FROM table
CROSS APPLY (
SELECT DATEADD(DAY, ((DATEDIFF(DAY, 0, RangeStart) - 1) / 7) * 7 + 7, 0) AS MondayAfterRangeStart
) AS CA1
WHERE MondayAfterRangeStart <= RangeEnd