带有时间间隔的日期之间的mysql查询

标签 mysql date between

我有一个包含 created_time 字段的表。 需要找出特定时间间隔内两个日期之间的所有条目。 例如,如果我想查找 2018 年 4 月 1 日到 2018 年 4 月 30 日之间的所有条目,时间间隔在下午 2 点到 4 点之间,理想的查询是什么?

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

最佳答案

您需要拆分比较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

关于带有时间间隔的日期之间的mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51397074/

相关文章:

mysql - 触发错误以使用其他 2 列的总和更新列

objective-c - 如何获取文件 Amazon S3、AWS IOS SDK 的上传日期

php - SQL/PHP - Between Query with time() 函数

sql-server - SQL Server - 文本列包含之间的数字

php - mysql 删除空格

PHP 事务提交正常但 MySQL 数据库未更改

mysql - 我应该在 php 和 mysql 中将 friend 存储为 "strings"还是 "integers"?

excel - 在 Excel 中将季度年转换为 MM/DD/YYYY

c# - 如何在 C# 中复制具有特定日期的文件

amazon-dynamodb - Between 运算符如何在带有字符串的 dynamodb 中工作