首页 > 解决方案 > 在 SQL 中选择给定时间之前的所有行

问题描述

我有一个相当简单的 SQL 表(使用 MYSQL Workbench 8.0),其中表的行包含日期和值,如下所示:

        date         |   value
 --------------------|----------
 2018-09-06 18:00:00 |    73

日期列中的值范围从 %18:00:00 到 %17:30:00。我想做的就是从查询中返回结果,其中我排除了日期列中的时间在 17:00:00 之前的所有行。我目前使用无济于事的查询是:

SELECT * FROM table_name where td_time <> '%17%'

作为参考,“日期”列中的值被格式化为日期时间类型。

我相信我遗漏了一些相当简单的东西,但这是我使用 SQL 的第二天,我无法弄清楚我是否遗漏了语法上的细微差别。

标签: mysqldatetimeselectmysql-workbench

解决方案


MySQL中有很多函数来处理时间和日期值,你可以这样做:

select * from table where hour(date) < 17 and hour(date) > 17

或者

select * from table where time(date) < '17:00:00' and time(date) > '18:00:00'

推荐阅读