如何计算周末日期,如果输入是日期和周末日(太阳、星期一、星期二、星期三、星期四、星期五或星期六)



如果输入是日期和一周结束的日期(在某些业务中,周末将是星期五(6)、星期六(7)或星期日(1)),那么如何计算特定日期的周末日期呢?例如

f('9/2/2016',6) = '9/2/2016' -- Weekending day a Friday
f('9/2/2016',7)='9/3/2016' -- weekending day a Saturday
f('9/2/2016',1)='9/4/2016' -- weekending day a Sunday

下面是解决问题的SQL代码:

declare @tdate datetime
declare @weekendingday int
set @weekendingday=7  --weekending saturday
set @tdate='2016-09-02'
select DATEADD (D, case when @weekendingday - DatePart (DW, @TDate) < 0 then 7+(@weekendingday - DatePart (DW, @TDate)) else @weekendingday - DatePart (DW, @TDate) end , @TDate)

相关内容

最新更新