两个日期之间的SQL存储逻辑

时间:2013-06-07 02:44:15

标签: php mysql sql algorithm logic

我真的很想得到你的帮助。我遇到了以下问题。

我有一个产品商店应用,我输入两个日期(DATETIME),初始和最终日期。

我需要验证所有异常,例如:

我保留了

中的项目
  

15:00至17:00。

然后我不能在此期间保留此项目。

这里举一些例子:

  

从14:00到16:00 [no]
  从15:00到16:00 [否]
  从16:00到18:00 [否]
  从12:00到14:00 [是]
  从17:00到19:00 [是]

看看这段代码,这就是我已经可以做到的。 (小白)。

SET @START = DATE('2013-06-06 15:30:00');
SET @FINAL = DATE('2013-06-06 16:00:00');

INSERT INTO `store` (`start_date`, `final_date`) VALUES ('2013-06-06 15:00:00', '2013-06-06 17:00:00');
SELECT IF(COUNT(*) > 0, 'NO', 'YES') FROM `Store` WHERE
    (`start_date` BETWEEN @START AND @FINAL); -- OUTPUT 'NO'

使用此代码,我解决了我可以验证两个日期之间的关系的问题,但是如果其中一个日期超出了这些范围,则会失败。

记住我也可以使用后端语言来提供帮助。

谢谢

1 个答案:

答案 0 :(得分:3)

检查"中的任何一个是否尝试保留"日期/时间介于"保留"日期/时间范围:

SELECT IF(COUNT(*) = 0, 'NO', 'YES')
FROM Store
WHERE @Start BETWEEN start_date AND final_date
   OR @Final BETWEEN start_date AND final_date

如果计数为零,则时间段保留。如果它大于零,则时间 保留。