2010-03-12 45 views
0

我有我的數據庫類型Datetime中的兩個字段的開始時間和結束時間,現在我希望用戶選擇的開始時間和結束時間不應落在開始時間和結束時間的時間間隔內已經存在於數據庫中。如何做這個驗證。在c#中的時間間隔#

+1

我不確定你在問什麼。你想知道用戶指定的日期時間是否在數據庫的兩個範圍內?你想在C#中或者實際上在SQL中進行檢查(假設你的數據庫是SQL)? – NibblyPig 2010-03-12 12:36:31

+0

你可以發佈你迄今爲止嘗試過的代碼嗎? – JohnFx 2010-03-12 12:39:14

回答

4

首先,確保yourStartTime < yourEndTime,如果你還沒有。如果計數不爲零,你已經失敗的驗證

SELECT COUNT (*) FROM [table] 
WHERE [table].EndTime > yourStartTime 
     AND [table].StartTime < yourEndTime 

那麼您可以在數據庫上運行此查詢。

+1

在* :) – 2010-03-12 13:04:41

+0

Bah的周圍加上一些括號,我知道我不記得我的SQL正確:-D Thx! – 2010-03-12 13:13:55

+1

現在爲什麼被拒絕? : - | – 2010-03-12 20:47:18

1

你可以使用TimeSpan ts = endTime.Subtract(startTime);,它會給你兩個日期之間的差異。然後,從數據庫中選擇結果,可以使用DATEDIFF方法來比較這些值。

如果我正確地理解了這個問題。

+0

時間跨度有什麼用? – 2010-03-12 12:55:35

+0

您可以使用一些很好的方法來鍛鍊多少天,幾小時,幾分鐘等。 – 2010-03-12 12:57:10

+0

是的,但我不認爲兩個日期之間的持續時間以及它們之間的範圍是否重疊有相關性。 – 2010-03-12 13:07:10