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


    费话不说,直接上代码

    SQL 代码:

    View Code
    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');

    测试结果:

  • 相关阅读:
    android AsyncTask 详细例子(2)
    解决如何让AsyncTask终止操作
    Android模仿jquery异步请求
    const与define的异同
    PHP5生成图形验证码(有汉字)
    TPCC-UVA测试环境搭建与结果分析
    qconbeijing2018
    qconshanghai2015
    qconshanghai2017
    qconshanghai2016
  • 原文地址:https://www.cnblogs.com/dataadapter/p/2597085.html
Copyright © 2020-2023  润新知