我被代码困住了。我想在输入事件之前、之后和期间查看 MySQL 数据库中的女巫事件。
我有一个包含以下字段的表:
Event_id
(int AUTO_INCREMENT)开始日期
(日期)开始时间
(varchar)end_date
(日期)结束时间
(varchar)
开始时间和结束时间为24小时制,存储时不带冒号分隔符:
(所以23:50会存储为2350,1:00会存储为0100)
输入事件的日期和时间将采用相同的格式。
如何进行查询(或脚本)以获取最接近输入事件的事件、检查输入事件期间是否有事件的查询以及获取输入事件之后最接近事件的查询?
最佳答案
首先,从改变你的方案开始,这样你就有了
event_id (int AUTO_INCREMENT),
start_date (timestamp),
end_date (timestamp)
对于您的查询,您现在可以使用 TIMEDIFF
。
最近的事件
SELECT *, TIMEDIFF(input_date, start_date) diff
FROM events ORDER BY diff LIMIT 1
这将为您带来下一个事件。
事件期间的事件
SELECT * FROM events
WHERE
TIMEDIFF(input_date, start_date) > 0 AND
TIMEDIFF(input_date, end_date) < 0
FROM events
这将为您提供正在进行的事件。
在进行比较之前,您可能需要将 TIMEDIFF
包装在 SECONDS()
中。
关于php - 检查事件是在其他事件之前、之后还是期间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11014789/