--需求:1.历史日期不显示,今天算历史。 --需求;2.开始日期不超期,未来可超期。 SET DATEFIRST 1 DECLARE @XQ INT SET @XQ = 4 DECLARE @KSRQ VARCHAR(50) SET @KSRQ = '2020-05-29' DECLARE @JSRQ VARCHAR(50) SET @JSRQ = '2020-06-24' --开始日期:传参 DECLARE @KSRQ_1 DATETIME SET @KSRQ_1 = CONVERT(DATETIME,@KSRQ) --开始日期:星期 DECLARE @KSRQ_2 DATETIME SET @KSRQ_2 = DATEADD(DAY,@XQ - DATEPART(WEEKDAY,@KSRQ_1),@KSRQ_1) --结束日期:日期 DECLARE @JSRQ_1 DATETIME SET @JSRQ_1 = CONVERT(DATETIME,@JSRQ) --结束日期:星期 DECLARE @JSRQ_2 DATETIME SET @JSRQ_2 = DATEADD(DAY,@XQ - DATEPART(WEEKDAY,@JSRQ_1),@JSRQ_1) --当天日期:系统 DECLARE @TODAY DATETIME SET @TODAY = CONVERT(DATETIME,CONVERT(VARCHAR(8),GETDATE(),112)) IF(@KSRQ_1 > @JSRQ_1) BEGIN --错误:开始日期 > 结束日期 RETURN END IF(@TODAY >= @JSRQ_2) BEGIN --错误:系统日期 >= 结束日期(星期) RETURN END IF(@TODAY >= @KSRQ_2 OR @KSRQ_1 >= @KSRQ_2) BEGIN --变更:系统日期 >= 开始日期(星期) --变更:开始日期 >= 开始日期(星期) SET @KSRQ_2 = DATEADD(DAY,7,@KSRQ_2) END WHILE(@KSRQ_2 <= @JSRQ_2) BEGIN SELECT @KSRQ_2 SET @KSRQ_2 = DATEADD(DAY,7,@KSRQ_2) END
SqlSever 星期日期(获取日期范围内的星期日期)(有BUG,修复中)
猜你喜欢
转载自www.cnblogs.com/ltcsys/p/12972188.html
今日推荐
周排行