MySQL查询与日期之间的时间间隔

时间:2018-07-18 08:26:03

标签: mysql date between

我有一个带有 created_time 字段的表。 需要找出两个日期之间,特定时间间隔之间的所有条目。 例如,如果我要查找2018年4月1日至2018年4月30日之间的所有条目,并且时间介于2.30 PM至4.30 PM之间,那么理想的查询是什么?

select * from my_table where created_time between '2018-04-01
14:30:00' and '2018-04-30 16:30:00'

1 个答案:

答案 0 :(得分:2)

您需要拆分比较Date值和Time值。

您可以尝试此查询。

TestDLL

CREATE TABLE my_table (
    created_time  DATETIME
);

INSERT INTO my_table VALUES ('2018-04-01 14:00:00');
INSERT INTO my_table VALUES ('2018-04-01 14:50:00');
INSERT INTO my_table VALUES ('2018-04-04 10:00:00');
INSERT INTO my_table VALUES ('2018-04-01 15:00:00');

查询

select * from my_table 
where 
    (created_time between '2018-04-01' and '2018-04-30') 
AND 
    (CAST(created_time AS time) > CAST('14:30:00' AS time) AND CAST(created_time AS time) < CAST('16:30:00' AS time))

[结果]

|         created_time |
|----------------------|
| 2018-04-01T14:50:00Z |
| 2018-04-01T15:00:00Z |

SQLFiddle