如何在MySQL的两列范围之间获取记录?

问题描述 投票:-1回答:1

这里是下表,即machine_shifts

Kishore Kumar Korada

并且假设我有一台机器,该机器在07:01:00的时间开始在2010:01:01上,在时间[[10]的时间在2010:01:03上结束:00:00。

我想查询上表以获取具有开始时间的日期和具有结束时间的日期之间的记录。

预期输出:

enter image description here

在标记线之间是预期的输出。

mysql sql select between
1个回答
0
投票
尝试一下(请注意,在此示例中,具有日期类型的列称为date_c,当您对日期和时间戳有疑问时,请注意您的确切数据):

SELECT * FROM machine_shifts WHERE (STR_TO_DATE(concat(date_c, ' ', shift_start_time),'%Y-%e-%c %H:%i:%s' ) BETWEEN STR_TO_DATE('2010-01-01 00:00:01', '%Y-%e-%c %H:%i:%s') AND STR_TO_DATE('2010-01-02 23:59:59', '%Y-%e-%c %H:%i:%s')) AND (STR_TO_DATE(concat(date_c, ' ', shift_end_time),'%Y-%e-%c %H:%i:%s' ) BETWEEN STR_TO_DATE('2010-01-01 00:00:01', '%Y-%e-%c %H:%i:%s') AND STR_TO_DATE('2010-01-02 23:59:59', '%Y-%e-%c %H:%i:%s'));

© www.soinside.com 2019 - 2024. All rights reserved.