如题,碰上个需求,需要根据 选择日期,算出剩余的日期里有多少个休息日
下面是代码
DECLARE @Day INT = 13 ;
DECLARE @MonthLastDay INT = (
SELECT DATEPART(DAY, DATEADD(d, -DAY(GETDATE()), DATEADD(m, 1, GETDATE())))
) ;
DECLARE @MonthLastDayName NVARCHAR (10) = (
SELECT DATENAME(WEEKDAY, DATEADD(d, -DAY(GETDATE()), DATEADD(m, 1, GETDATE())))
) ;
SELECT @Day AS 起始日期, --起始日期
@MonthLastDay AS 当月最后一天, --当月最后一天
@MonthLastDayName AS 当月最后一天的中文名称, --当月最后一天的中文名称
( @MonthLastDay - @Day ) AS 隔了多少天, -- 起始日期 -> 当月最后一天隔了多少天(eg:7月14 -> 7月31 =17)
( @MonthLastDay - @Day ) / 7 AS 隔了多少个周, -- 起始日期 -> 当月最后一天 中间隔了多少个周
CASE @MonthLastDayName
WHEN N'星期一' THEN 1
WHEN N