SQL Server SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期
2022-11-12 09:47:54
内容摘要
这篇文章主要为大家详细介绍了SQL Server SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔
文章正文
这篇文章主要为大家详细介绍了SQL Server SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
一、给定一个日期值,求出此日期所在星期的星期一和星期天的日期数据例如给定一个日期 2010-09-01,求出它所在星期的星期一是2010-08-30,星期天是2010-09-05Function创建如下:代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <code> USE [MSSQL] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[My_OneDay_GetWeekFirstAndEndDay](@tmpDate DATETIME) RETURNS @tmpTable TABLE(FirstDay DATETIME , EndDay DATETIME) AS BEGIN INSERT INTO @tmpTable SELECT a.FirstDay,b.EndDay FROM ( SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 0) AS FirstDAy ) a LEFT JOIN ( SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 6) AS EndDay ) b ON a.ID = b.ID RETURN End </code> |
代码如下:
1 2 3 | <code> SELECT * from My_OneDay_GetWeekFirstAndEndDay( '2010-09-01' ) </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <code> USE [MSSQL] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[MY_Range_GetWeekFirstAndEndDays](@tmpDateSTART DATETIME,@tmpDateEND DATETIME) RETURNS @tmpTable TABLE(WeekOrder INT,FirstDay DATETIME , EndDay DATETIME) AS BEGIN DECLARE @tmpDate DATETIME DECLARE @index INT SET @tmpDate=@tmpDateSTART SET @index=1 WHILE @tmpDate <=@tmpDateEND BEGIN INSERT INTO @tmpTable SELECT @index,a.FirstDay,b.EndDay FROM ( SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 0) AS FirstDAy) a LEFT JOIN ( SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 6) AS EndDay) b ON a.ID = b.ID SET @tmpDate=DATEADD(DAY,7,@tmpDate) SET @index=@index+1 END RETURN End </code> |
代码如下:
1 2 3 | <code> SELECT * from My_Range_GetWeekFirstAndEndDays( '2011-09-01' , '2011-10-06' ) </code> |
注:关于SQL Server SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期的内容就先介绍到这里,更多相关文章的可以留意
代码注释