SQL 判断两个时间段是否有交叉

标签: SQL
3人阅读 评论(0) 收藏 举报
分类:
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 
BEGIN
   DECLARE @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入门

-
  • 1970年01月01日 08:00

SQL判断两个时间段是否有交集

题目:给定时间区间(begin,end),数据库字段startTime与endTime,现在要判断它们之间是否有交集。SELECT * FROM xxx WHERE NOT ((endTime < b...
  • rickiyeat
  • rickiyeat
  • 2017-05-16 14:35:45
  • 2661

SQL判断时间有没有交叉

假如有时间A,判断表里面有没有与时间A交叉的时间B 判断时间四种交叉情况就行了 1、时间A完全在时间B范围内       时间A起始范围                        ━━━━━━━━...
  • hjgzj
  • hjgzj
  • 2017-12-26 10:51:04
  • 460

SQL判断一个事件段 是否在数据库中与其他时间段有重叠 判断时间重叠

数据库字段startDate 开始时间   endDate 结束时间  -两个参数 比如查2-2  至2-6 在数据库中是否与其他时间有重叠 四个条件有一项满足则有重叠时间 思路是这样子 以开始...
  • xiaocen99
  • xiaocen99
  • 2017-05-31 13:11:55
  • 1640

sql语句判断两个时间段是否有交集

场景:  数据库有有两个字段.开始时间,和结束时间,指定一个时间段(a,b),a表示开始时间,b表示结束时间。看数据库中有没有与(a,b)冲突的时间段,有的话就返回那条记录。 解析:两个时间段...
  • xtj332
  • xtj332
  • 2013-08-20 13:06:16
  • 21855

js 判断多组时间段是否交叉重复

今天在工作中遇到一个需求,页面上可以填写多个开始,结束时间段,但提交时不能有重复交叉的情况,一开始网上搜了一下,也没找到方便的方法,就自己想了想写了个,代码如下: ...
  • feijiyan1985
  • feijiyan1985
  • 2015-02-12 22:09:08
  • 3786

判断两段时间是否有重叠部分

判断两段时间是否有重叠部分
  • ch21st
  • ch21st
  • 2016-09-23 10:29:24
  • 1149

PHP计算两个时间段是否有交集(边界重叠不算)

/** * PHP计算两个时间段是否有交集(边界重叠不算) * * @param string $beginTime1 开始时间1 * @param string $endTime1 结束时间...
  • biorelive
  • biorelive
  • 2015-10-15 14:34:24
  • 1540

Java判断两个时间段是否有交集

public static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private s...
  • jj88888
  • jj88888
  • 2015-09-04 16:14:21
  • 7338

js判断两个时间段是否有重合部分(是否冲突)

时间段的比较分为两种: 1:带日期的两个具体的时间段比较,如比较2018-01-01 12:00~14:00和2018-01-01 15:00~17:00 2:忽略日期,只比较时分秒,如比较每天的...
  • huangxin112
  • huangxin112
  • 2017-08-14 09:35:08
  • 1683
    个人资料
    等级:
    访问量: 93
    积分: 90
    排名: 149万+
    文章存档