2010-03-12 58 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