带间隔日期的mysql查询

qacovj5a  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(340)

我有一个创建了时间域的表。需要找出两个日期之间、特定时间间隔之间的所有条目。例如,如果我想查找2018年4月1日到2018年4月30日之间的所有条目,并且时间间隔在下午2:30到下午4:30之间,那么理想的查询是什么?

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

iqxoj9l91#

你需要分开比较 Date 价值与 Time 价值观。
您可以尝试此查询。
测试DLL

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公司

相关问题