費話不說,直接上代碼
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
'
);
測試結果:
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

