• 网站首页
  • 网络编程
    • PHP笔记
    • JavaScript
    • HTML
    • AJAX
    • jQuery
    • Python
  • 数据库
    • MySQL
    • SQL Server
当前位置:首页 > 数据库 > SQL Server

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

人气:24 时间:2019-11-28

这篇文章主要为大家详细介绍了SQL Server SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!

一、给定一个日期值,求出此日期所在星期的星期一和星期天的日期数据
例如给定一个日期 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') 

注:关于SQL Server SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:SQL SERVER

您可能感兴趣的文章

  • SQL Server利用sys.sysprocesses检查SqlServer的阻塞和死锁
  • SQLServer 全文检索(full-text)语法
  • SQL Server 2000 升级到 SQLServer 2008 性能之需要注意的地方之一
  • SQL Server 一次性压缩Sqlserver2005中所有库日志的存储过程
  • SQLServer 跨库查询实现方法
  • SQL Server 数据库主键的生成方式小结(sqlserver,mysql)
  • SQL Server使用cmd命令行窗口操作SqlServer的方法
  • SQLServer 2005 实现数据库同步备份 过程-结果-分析
  • SQL Server CREATE FUNCTION sqlserver用户定义函数
  • sqlserver 查询数据库大小的方法
转载请注明出处:512笔记
本文永久地址:http://www.512pic.com/179/8004-0.html
上一篇:SQL Server 很有意思的SQL多行数据拼接
下一篇:SQL Server 数据库批量处理脚本
最新文章
  • SQL Server 数据库连接字符串中的可选项收集
  • SQL Server 数据库主键选取策略
  • SQL Server SQL语句练习实例之三——平均销售等待时间
  • SQL Server 在数据库‘master’中拒绝CREATE DATABASE权限问题的解决方法
  • SQL Server 数据库附加不上解决办法
  • SQL Server Bulk Insert 只需要部分字段时的方法
  • SQL Server SQL点滴24 监测表的变化示例
  • SQL Server 获取当前日期的最大时间值
  • SQL Server 获取指定日期所在月份的第一天的代码
  • SQL Server 删除重复行的6个方法
本月热门
  • SQL Server 三种SQL分页查询的存储过程示例
  • SQL Server 触发器实例代码
  • SQL Server 得到数据库中所有表名 表字段及字段中文描述
  • SQL Server insert select与select into 的用法示例
  • SQL Server 动态给表添加删除字段并同时修改它的插入更新存储过程
  • SQL Server 动态SQL中返回数值的实现代码
  • SQL Server 合并DataTable并排除重复数据的通用用法
  • SQL Server 动态创建临时表的语句分享
  • SQL Server 在SQL触发器或存储过程中获取在程序登录的用户
  • SQL Server Execpt和not in 性能区别
  • 热门文章
    • SQL Server 格式导致的Excel导入sql出现异常的解决方法
    • SQL Server数据库性能优化三:程序操作优化提升性能
    • SQL Server 数据库备份方法菜鸟教程
    • sqlserver 复制表 复制数据库存储过程的方法
    • SQL Server 连接服务器出现错误 7391的解决方法
    • SQL Server 整理一下的排序规则
    • SQL Server 海量数据库的查询优化及分页算法方案
    • SQL Server 收缩后对数据库的使用有影响吗?
    • SQL Server 数据库管理常用的SQL和T-SQL语句
    • SQL Server数据类型及长度限制详细说明
    • SQL Server “SQL事件探查器”里表格的标题,如CPU,Read,Write,Duration,SPID.........的解释
    • SQL Server 常用代码大全
    • SQL SERVER比较一个字符串中是否含含另一个字符串中的一个字符
    • 一些SQL Server存储过程参数及例子
    • SQL Server 按关健字模糊查询,并按匹配度排序的SQL语句
    • 清除SQLServer日志的两种方法
    • SQL Server SQL语句去掉重复记录,获取重复记录
    • 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
    • SQL Server中Linked Server及Remote Server的使用示例
    • Sql Server 保留几位小数的两种示例

All rights reserved. 512笔记. 网站地图 友情连接 招募投稿 广告服务