SQL 判断两个时间段是否有交叉
费话不说,直接上代码
SQL 代码:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[fun_GetTimeSlotDays]')) DROP FUNCTION [dbo].fun_GetTimeSlotDays GO-- ============================================= -- Author: <Mike.Jiang> -- Create date: <2012-07-18> -- Description: <判断两个时间断是否有交叉,如果有则返回1,否则返回0> -- ============================================= CREATE FUNCTION dbo.fun_GetTimeSlotDays( @fromDate DATETIME, @toDate DATETIME, @startDate DATETIME, @endDate DATETIME ) RETURNS INT AS BEGINDECLARE @ret INT;IF(DATEDIFF(DAY,@fromDate,@endDate)>=0 AND DATEDIFF(DAY,@endDate,@toDate)>=0 )SET @ret=1;IF(DATEDIFF(DAY,@startDate,@toDate)>=0 AND DATEDIFF(DAY,@toDate,@endDate)>=0 )SET @ret=1;IF (@ret is null)SET @ret=0;RETURN @ret; END GO
测试代码:
SELECT dbo.fun_GetTimeSlotDays('2012-03-01','2012-03-10','2012-02-10','2012-02-20'); SELECT dbo.fun_GetTimeSlotDays('2012-03-01','2012-03-10','2012-02-01','2012-03-01'); SELECT dbo.fun_GetTimeSlotDays('2012-03-01','2012-03-10','2012-03-01','2012-03-02'); SELECT dbo.fun_GetTimeSlotDays('2012-03-01','2012-03-10','2012-03-10','2012-03-11'); SELECT dbo.fun_GetTimeSlotDays('2012-03-01','2012-03-10','2012-03-11','2012-03-11');
测试结果:
SQL 判断两个时间段是否有交叉相关推荐
- SQL判断两个时间段是否存在交集
场景: 数据库有有两个字段.开始时间,和结束时间,指定一个时间段(a,b),a表示开始时间,b表示结束时间.看数据库中有没有与(a,b)存在交集的时间段,有的话就返回那条记录. 分情形讨论 SQL: ...
- mysql时间段重叠_MySQL判断两个时间段是否有重合
两个集合不交叉,只要新插入的条记录的结束时间大于已存在的记录的开始时间并且新插入记录的最小值小于已存在记录的最大值,那么这两个时间段一定存在交叉. 总结起来就一句话:最小值小于最大值并且最大值大于最小 ...
- 判断两个时间段交集、时间重叠问题
判断两个时间段范围是否有交集(时间重叠)问题经常遇到,比如预约会议室开会,活动的开始结束等,本文做此分析. 前提:本文时间传参已做限制,结束时间必须大于开始时间 1.正向思维 代码如下 (oneSta ...
- 判断两个时间段是否重叠的算法
判断两个时间段是否重叠,如: startdate1 - enddate1 startdate2 - enddate2 两个时间的重叠分4种情况,若你一一列出这四种情况来判断是否重叠那就弱爆了,最简单的 ...
- 判断两个时间段范围是否有交集
前言 项目中经常会遇到判断两个时间段范围是否有交集,所以本文就记录下当时思考的过程和示例代码. 本文提供两种思路. 一.正向思维,求交集 以某个时间段为固定参考范围,然后有交集的情况共有以下四种情况分 ...
- java 时间段重叠_java 判断两个时间段是否重叠的案例
java 判断两个时间段是否重叠的案例 发布时间:2020-10-21 16:08:51 来源:脚本之家 阅读:108 作者:SakuyaM 最近业务上遇到需要判断两个时间段是否存在重叠的情况,网上找 ...
- java里怎么判断时间重合_java 判断两个时间段是否重叠的案例
最近业务上遇到需要判断两个时间段是否存在重叠的情况,网上找了不少代码.大佬们的思路过于简洁了,有些理解不了.还只是个菜鸟码农,还是多锻炼锻炼自己的思路. 思路很简单:定义一个时间段的概念,既然是时间段 ...
- Oracle判断两个时间段是否有重叠
判断两个时间段是否有重叠 (a,b),(c,d) 判断两段时间是否有重叠 方法一 select 'yes' from dual where d>a and c<b; 方法二 select ...
- 判断两个时间段是否相差 几 个月
//比较两个时间 time1,time2均为日期类型 //判断两个时间段是否相差 m 个月 function completeDate(time1 , time2 , m) {var diffyear ...
最新文章
- python canvas画弧度_只要十分钟,python绘图神器turtle了解一下?
- ps抠头发插件_「福利」PS抠图神级插件——VertusFluid Mask
- .NET实现之(部署ActiveX控件—简)
- 简单的for()循环使用方式foreach
- 山东大学继续教育计算机在线作业,山东大学继续教育数文字电子技术基础习题3及答案.docx...
- 我的三年研究生(CS)学习与工作经历(ZT)
- 谷歌、微软、亚马逊6个惊人的A/B测试实例
- php 远程下载大文件,php下载远程文件(支持断点续传,支持超大文件)
- html5拨动密码锁游戏,密码锁游戏(JavaScript)
- Eclipse右下角一直提示Computing additional info解决办法
- [Python] itertools.islice(iterable, start, stop[, step]) 创建迭代器并返回所选元素
- pandas—显示行索引与列索引(数组或者列表)
- 论文笔记_S2D.46_2013-3DV_基于点融合的动态场景实时三维重建
- Servlet 请求转发
- cad卸载_永远不舍得卸载的6款CAD插件,完全免费,让你三小时做一套图!
- hspice 2019 安装流程
- Kali Linux 下搜狗输入法换肤和设置快捷键
- 网络安全-解密WinRAR捆绑恶意程序并自动上线MSF的原理
- IDE、SATA、SCSI、SAS、iSCSI
- chrome浏览器的devtools详解