2014-11-14 18 views
0

我試圖編寫一個存儲過程,以檢查當前是否存儲了新的時間間隔。如何使用SQL Server驗證小數點間隔?

例子:

我有我的表這些值:

startHour = 7.20

endHour = 8.10

我想找到一種方法來解除與startHour或endHour任何插入導致與之前存儲的值發生衝突,如startHour = 7.21,7.32,8.09等。 我的意思是,時間間隔7.20 - 8.10不可用。 是的,我使用小數。 謝謝!

+2

你提的問題是非常不清楚。從你發佈的內容來看,沒有人能提供很大幫助你需要提供一些關於你的表格,數據和你正在做什麼的細節。 sqlfiddle.com是一個開始的好地方。你爲什麼使用小數?爲什麼不使用時間數據類型? – 2014-11-14 19:49:25

回答

0

我認爲你可以這樣做:

declare @startHour decimal 
declare @endHour decimal 

IF 
    0 = 
    (SELECT 
     COUNT(*) 
    FROM HourIntervals 
    WHERE (startHour <= @startHour AND @startHour < endHour) OR (startHour <= @endHour AND @endHour < endHour)) 
BEGIN 
    -- Interval ok, insert your record here 
    select 1 
END 
ELSE 
BEGIN 
    -- Interval overlaps, don't insert 
    select 0 
END