【问题标题】:SQL Storage logic between two dates两个日期之间的 SQL 存储逻辑
【发布时间】:2013-06-07 02:44:15
【问题描述】:

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

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

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

我从

预订了一个项目

15:00 至 17:00。

那么我不能在这段时间内预订这个项目。

这里有一些例子:

从 14:00 到 16:00 [无]
从 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'

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

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

谢谢

【问题讨论】:

  • 有什么问题?您可以使用该查询
  • 请包含您的实际代码。外部链接可能会有所帮助,但应该在问题中包含代码之外。
  • 我编辑了这篇文章。谢谢
  • but if one of the dates informed are out of those ranges it fails. 请举例日期
  • 14:00 至 16:00 [无] 15:00 至 16:00 [无] 16:00 至 18:00 [无] 12:00 至 14:00 [是 ] 从 17:00 到 19:00 [ 是 ]

标签: php mysql sql algorithm logic


【解决方案1】:

检查“尝试保留”日期/时间是否在“保留”日期/时间范围之间:

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

如果计数为零,则时隙保留。如果它大于零,则时隙被保留

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-11
    • 2019-11-21
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2015-06-21
    • 2021-11-28
    相关资源
    最近更新 更多