例如
如果今天是22 Jan
,那么我希望将日期设置为
(StartDate:2018-Jan-2018& EndDate:201-Jan-2018)
和
第二个日期设置为
(StartDate:2018-Jan-2018& EndDate:201-Jan-2018)
和 第三个日期设为
(StartDate:02-Jan-2018& EndDate:08-Jan-2018)
和 最后日期设为
(StartDate:2018年1月1日和EndDate:2018年1月1日)
其中第一个日期将由用户给出,即:2018年1月22日
答案 0 :(得分:0)
试试这个
DECLARE @First DATE = '01/22/2018'
;WITH CTE
AS
(
SELECT
SeqNo = 1,
StartDt = CAST(DATEADD(DD,-6,@First) AS DATE),
EndDt = CAST(@First AS DATE)
UNION ALL
SELECT
SeqNo = SeqNo+1,
StartDt = CASE WHEN DAY(CAST(DATEADD(DD,-1,StartDt) AS DATE)) = 1
THEN CAST(DATEADD(DD,-1,StartDt) AS DATE)
ELSE CAST(DATEADD(DD,-7,StartDt) AS DATE) END,
EndDt = CAST(DATEADD(DD,-1,StartDt) AS DATE)
FROM CTE
WHERE SeqNo < 4
)
SELECT
*
FROM CTE
我的结果