如何解决Mysql选择两列之间的当前时间
我有一个日程表,其中有两列 time_from
和 time_to
,其中的值采用 24 小时格式,例如 from 和 to 是晚上 9 点到凌晨 1 点,而不是 time_from 和 time_to分别为 21 和 1。
现在我需要检查当前时间是否落在这两列之间
如果现在是晚上 11 点,我应该得到在晚上 11 点之间的列值是 23 和 1 的列
CREATE TABLE `ace_rp_inventory_locations_night` (
`id` int(11) NOT NULL,`name` varchar(255) DEFAULT NULL,`time_from` varchar(255) DEFAULT NULL,`time_to` varchar(255) DEFAULT NULL
);
INSERT INTO ace_rp_inventory_locations_night (id,name,time_from,time_to)
VALUES (1,'test','23','1');
此查询有效
SELECT *
FROM `ace_rp_inventory_locations_night`
WHERE time_from_1 <= '23'
AND time_to_1 >= '23'
如果时间在 24 小时范围内,即 20 和 24,但 1am 的值是 1 并且上述查询不起作用,因为 23 和 1 没有完全填充条件我正在用当前时间检查它,所以如果时间是凌晨 2 点,我必须在查询中传递 2。
如何使用当前时间并用它在两列之间进行查询?
解决方法
您可以使用:
SELECT *
FROM `ace_rp_inventory_locations_night`
WHERE (time_from_1 <= time_to_1 AND 23 between time_from_1 and time_to_1) OR
(time_to_1 > time_to_1 AND 23 NOT BETWEEN time_from_1 and time_to_1);
注意:这使用了 BETWEEN
,它会影响范围端点的处理方式。你的问题没有具体说明要做什么。您可能应该明确说明不等式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。