如何在C#中查看会议时间

时间:2009-07-10 07:32:01

标签: asp.net sql-server-2005

我的会议时间从早上6点到晚上9点开始下拉,下拉值为1到6.00 AM和2到6.30 AM ......直到晚上9点。我保持下降值为因为很难与AM和PM一起玩,所以在数据库中它存储为数字。它有时间和时间2下降...我不想有重叠的会议。就像已经创建了6.00 AM到9.00 AM。我不想在上午6点30分到上午10点创建另一个会议......如何检查重叠会议......任何人都可以帮助我...我在后端使用带有c#和SQL Server 2005的asp.net。 ...

4 个答案:

答案 0 :(得分:1)

我用这个SQL检查它:

select count(*) from Appointment_data 
where 
  (ad_time_to > @SelectedTimeFrom) and (ad_time_from < @ SelectedTimeTo)

如果没有同时开会,此查询的结果为0。

答案 1 :(得分:0)

使用DateTime对象会更容易;然后你可以检查如下。

  1. 检查开始时间小于新时间的现有会议时间表 - 当您在上午6点召开一次会议时,请注意上午6:30。

    1. 如果开始时间很好,则查找不超过场景的任何开始时间的结束时间 - 上午5点开始和结束时间是在另一个预定会议之后(上午6点预定会议)。
  2. 如果符合这些条件,则可以允许安排新会议。

答案 2 :(得分:0)

与其他人一样。 使用DateTime对象会更好,但我还要补充一点,你应该坚持使用UTC进行所有计算和存储,并转换为本地时间进行用户交互。这样您就不必担心时区变化,闰日或夏季时间的变化。

答案 3 :(得分:0)

我可能会有这样的表格:

Meetings
--------
Unique_ID
Meeting_Date
Start_Time
End_Time

然后我会创建一个存储过程来检索特定日期范围内的所有会议,即

Select Count(*) from Meetings where Meeting_Date=@date and Start_Time >= @startTime and Start_Time < @endTime Or End_Time > @startTime and End_Time < @endTime

如果从此查询中返回任何结果,则您知道输入的时间与现有会议重叠,或者与其他会议发生冲突。