mysql - 在 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 的第二天,我无法弄清楚我是否遗漏了语法上的细微差别。
解决方案
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'
推荐阅读
- r - 查找数据框之间最近的前后日期
- c# - Luis MS Bot Framework - 响应 Luis 错误解释为 Intent 的提示
- java - Spring JPA 无法从类型 [java.lang.String] 转换为类型 [java.lang.Long] 的值“为什么?”
- bash - bash 脚本 subshesll 中的变量
- angular - 如何在stackblitz中添加chartjs插件漏斗、插件?
- python - tf.records 的替代品?在 tensorflow 中训练 CNN
- angular - 如何使用 angulafire2 正确初始化和分配 observable?
- vmware-clarity - 如何检测垂直导航组何时展开/折叠
- c - 为什么C在中定义M_2_SQRTPI常量
? - c# - C#使用一种方法检查数字是否为素数,不是素数或负数