SqlServer 查询星期数所在日期范围的日期值
2021/11/23 2:11:58
本文主要是介绍SqlServer 查询星期数所在日期范围的日期值,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一次功能处理时,发现还没用过当只有星期数的时候去确定在某段日期内的具体日期的,平常都是根据日期去找星期数,反过来的引起了我的兴趣,研究了一下,还是参考了博客的一位博主的解决方案,删减了下,
比如:当你想知道在2021-11-11 到2021-11-23日之间星期一是哪天,或者有多少个星期二,这个时候就来学习学习吧:
1 ---方法:获取指定范围日期的星期所在日期 2 3 CREATE FUNCTION [dbo].[My_OneWeek_GetDate](@KSRQ DATETIME,@JSRQ DATETIME,@XQ int) 4 RETURNS @tmpTable TABLE(resultDay DATETIME) 5 AS 6 BEGIN 7 --SET DATEFIRST 1 8 --{This is:国内一般认为每周的第一天为周一,某国一般设周一为星期天} 9 --DECLARE @XQ INT SET @XQ = 1 --星期数 10 --DECLARE @KSRQ VARCHAR(50) SET @KSRQ = '2021-11-20' 11 --DECLARE @JSRQ VARCHAR(50) SET @JSRQ = '2021-11-23' 12 13 --开始日期:传参 14 DECLARE @KSRQ_1 DATETIME SET @KSRQ_1 = CONVERT(DATETIME,@KSRQ) 15 --开始日期:星期 16 DECLARE @KSRQ_2 DATETIME SET @KSRQ_2 = DATEADD(DAY,@XQ - DATEPART(WEEKDAY,@KSRQ_1),@KSRQ_1) 17 --结束日期:日期 18 DECLARE @JSRQ_1 DATETIME SET @JSRQ_1 = CONVERT(DATETIME,@JSRQ) 19 --结束日期:星期 20 DECLARE @JSRQ_2 DATETIME SET @JSRQ_2 = DATEADD(DAY,@XQ - DATEPART(WEEKDAY,@JSRQ_1),@JSRQ_1) 21 22 --当天日期:系统 23 --DECLARE @TODAY DATETIME SET @TODAY = CONVERT(DATETIME,CONVERT(VARCHAR(8),GETDATE(),112)) 24 25 IF(@KSRQ_1 > @JSRQ_1) 26 BEGIN 27 --错误:开始日期 > 结束日期 28 RETURN 29 END 30 31 32 WHILE(@KSRQ_2 <= @JSRQ_2) 33 BEGIN 34 35 SET @KSRQ_2 = DATEADD(DAY,7,@KSRQ_2) 36 37 if(@KSRQ_2>@KSRQ_1 and @KSRQ_2<@JSRQ_1) 38 begin 39 --SELECT @KSRQ_2 40 insert into @tmpTable values(@KSRQ_2) 41 end 42 END 43 return 44 End 45 go
这里运用的方法,以便其他语句调用,值得注意的是,方法内不能使用执行语句,update/insert/delete/会提示错误,至于为什么把
SET DATEFIRST 1 也注释掉,你可以亲自试试,建议这个要写到方法外部,那么,
调用
select * from [dbo].[My_OneWeek_GetDate]('2021-11-20','2021-11-24',1)
传入开始日期,结束日期,以及星期数(星期三就是3,周二就是2了什么的)
然后就会看到它的结果:
ok,
就这样了,有交流请联系wx:EnternityOfStart
哦还有感谢:
https://www.cnblogs.com/ltcsys/p/12972188.html
这篇关于SqlServer 查询星期数所在日期范围的日期值的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-08Docker下的SqlServer发布订阅启用
- 2023-06-05Docker安装MS SQL Server并使用Navicat远程连接
- 2023-05-25深入浅出 SQL Server CDC 数据同步
- 2023-05-12通过空间占用和执行计划了解SQL Server的行存储索引
- 2023-04-24以SQLserver为例的Dapper详细讲解
- 2022-11-30SQL server高级函数查询
- 2022-11-26SQL SERVER数据库服务器CPU不能全部利用原因分析
- 2022-11-21SQL Server 时间算差值/常用函数
- 2022-11-20调试Archery连接SQL Server提示驱动错误
- 2022-10-22SQL Server 完整、差异备份+完整、差异还原(详细讲解,规避错误)