gpt4 book ai didi

mysql - 如果已经存在时间,我如何验证时间?

转载 作者:行者123 更新时间:2023-11-29 03:21:50 25 4
gpt4 key购买 nike

你好,我有一个表名 tbl_Clock,它有一个字段名 Clock。这是我的表格的一些示例:

|时钟 |

| 08.00-09.40 |
| 09.40-10.00 |
| 10.00-11.40 |

这是我的问题。

如果我想检查是否已经存在时钟,那么我只需执行此代码:

select * from tbl_Clock where substring(Clock,1,5) >= '08.00' AND substring(Clock,7,5) <= '09.40'

如果我执行上面的代码,如果已经有完全相同的时间,它就可以工作,并且我可以防止保存数据。

但是如果我输入像 09.40-10.50 或 08.00-10.00 这样的时间,即使它们之间已经存在时间,它仍然可以保存。任何人都知道验证此方法的最佳方法是什么?

最佳答案

我想你想检查你拥有的时间段和任何新输入的时间段之间是否有任何交集。

首先,请在数据库中将开始和结束时间存储为 TIME,而不是字符串。我会因为很多原因变得更好。开始时间将是一个名为 START 的列,结束时间列将是 END

其次,已经有一个关于检查任何路口的答案,一旦我找到它,我会分享链接。一般检查是

WHERE START <= :end AND END >= :start

因此,如果您想检查 09:4010:00 是否与现有记录有任何交集,则查询将是:

SELECT * FROM MY_TABLE WHERE START <= '10:00:00' AND END  >= '09:40:00'

这应该返回您问题中的前三个记录,表明该时隙已经与现有时隙相交。

关于mysql - 如果已经存在时间,我如何验证时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43029980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com