SQL中如何判断给定日期值

36次阅读
没有评论

共计 1865 个字符,预计需要花费 5 分钟才能阅读完成。

这期内容当中丸趣 TV 小编将会给大家带来有关 SQL 中如何判断给定日期值,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、给定一个日期值,求出此日期所在星期的星期一和星期天的日期数据

例如给定一个日期 2010-09-01,求出它所在星期的星期一是 2010-08-30,星期天是 2010-09-05

 Function 创建如下:

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

Function 测试:

SELECT * from  My_OneDay_GetWeekFirstAndEndDay(2010-09-01)

二、以上面单个日期搜索为基础,由用户输入两个参数,一个是开始日期,一个结束日期,根据这两个参数,求出在此时期段内的所有星期的星期一和星期天的日期表并排序。

例如开始日期是 2011-09-01, 结束日期是 2011-10-06,我们就可以得到此星期表如下:

WeekOrder  FirstDay  EndDay

 1  2011-08-29 00:00:00.000  2011-09-04 00:00:00.000

 2  2011-09-05 00:00:00.000  2011-09-11 00:00:00.000

 3  2011-09-12 00:00:00.000  2011-09-18 00:00:00.000

 4  2011-09-19 00:00:00.000  2011-09-25 00:00:00.000

 5  2011-09-26 00:00:00.000  2011-10-02 00:00:00.000

 6  2011-10-03 00:00:00.000  2011-10-09 00:00:00.000

 Function 创建如下:

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

Function 测试:

SELECT * from  My_Range_GetWeekFirstAndEndDays(2011-09-01 , 2011-10-06)

上述就是丸趣 TV 小编为大家分享的 SQL 中如何判断给定日期值了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计1865字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)