如果输入是日期和周结束日(在某些企业中,周末将是周五(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
如果输入是日期和周结束日(在某些企业中,周末将是周五(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)