当前位置:w88优德官网网文章中心网站开发SQL Server → SQL判断给定日期值(或时间段)所在星期的星期一和星期天的日期

SQL判断给定日期值(或时间段)所在星期的星期一和星期天的日期

减小字体 增大字体 作者:admin  来源:www.hack50.com  发布时间:2012-4-15 10:11:20
最近报表要用到一项功能,需要把数据源根据记录发生日期所在的星期序列进行分组。因此就写了两个相关SQL Function进行调用。一、给定一个日期值,求出此日期所在星期的星期一和星期天的日期数据
例如给定一个日期 2010-09-01,求出它所在星期的星期一是2010-08-30,星期天是2010-09-05
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')


本文引用网址:
在下列搜索引擎中搜索“SQL判断给定日期值(或时间段)所在星期的星期一和星期天的日期”的相关信息:
谷歌搜索 百度搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1林晨钰爆奶门照片ed2k 林晨钰爆...
  • 2雨后小故事完整版 雨后的小故事...
  • 3传谢娜张杰离婚 好友爆婚后情变...
  • 4杨棋涵7分钟****视频完整版 杨...
  • 5网传某校女老师与人偷欢春宫艳...
  • 1如何搭建第一个网站?做网站有...
  • 2Discuz!不能正常发送邮件-DISC...
  • 3电子商务网站建设的重要因素点...
  • 4织梦CMS读取频道信息失败 无法...
  • 5Dedecms会员注册验证邮箱的实现...
  • 1中国女大学生的淫靡生活
  • 2合肥艳照门事件 合肥艳照门全套...
  • 3林晨钰爆奶门视频qvod 林晨钰爆...
  • 4情侣酒店激情性爱 上演限制级影...
  • 5沈阳航空学院王婷不雅视频曝光...
  • 1Xen和虚拟化技术学习指南
  • 2瑞星播报--“灰鸽子变种HO”病...
  • 3如何做服务器安全维护?有哪些...
  • 4硬盘数据修复软件EasyRecovery...
  • 5Windows Server 2003 安全性指...
  • 赞助商广告

    图片文章导读