【问题标题】:SQL table Date Field ComparisionSQL表日期字段比较
【发布时间】:2010-10-24 00:39:16
【问题描述】:

我有两张桌子用于预订预订表格。一张表有书号(1-10)和状态;一开始所有状态都是“可用”。

第二个表具有保留者的名称和日期字段(签入、签出),并且两个表都与外键连接。所以 table1 到 table2 有一对多的关系;表示许多学生可以预订一本书。

问题:

当我收到让我们假设 book1 的预订请求时;那么该 book1 的状态应更改为该日期时间的“Oh Hold”(在 table1 上)。当第二个请求针对同一本书1,在同一日期范围内或与日期重叠时,它必须告诉一些消息,例如此日期已被保留或类似,因此第二个请求者不能在同一日期为同一本书预订,但他可以请求另一本书。

如何检查已经存在的sql表日期到当前输入日期??

非常感谢您的回复。

谢谢,

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    基本上你会看到这个日期模式:

    • 第一个日期不能在保留范围内。
    • 最后日期不能在保留范围内
    • 如果第一个日期小于保留的第一个日期,则最后一个日期不能大于保留的范围最后一个日期:

    这样的东西会找到当前的预订:

    SELECT *
    FROM reservations 
    WHERE book = @bookId
    AND (
    (@dat_ini BETWEEN begin_date AND end_date)
    OR (@dat_end BETWEEN begin_date AND end_date)
    OR (@dat_ini < begin_date AND @dat_end > end_date)
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 2012-07-22
      相关资源
      最近更新 更多