費話不說,直接上代碼
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 ' );
測試結果:
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
