MySQL SELECT WHERE datetime 匹配时间(不一定是天)

Posted

技术标签:

【中文标题】MySQL SELECT WHERE datetime 匹配时间(不一定是天)【英文标题】:MySQL SELECT WHERE datetime matches time (and not necessarily day) 【发布时间】:2016-08-01 11:09:33 【问题描述】:

我有一个包含时间戳列的表。无论日期如何,我都希望返回给定时间的所有记录。

换句话说,我想获取时间大于 09:43:00 的所有记录

2015-11-02 09:41:43
2015-11-02 09:43:02
2015-11-02 09:48:27
2015-11-02 09:52:49

【问题讨论】:

【参考方案1】:
SELECT id from table where UNIX_TIMESTAMP(TIME(timestamp_col)) > UNIX_TIMESTAMP(TIME('09:43:00'))

SELECT id from table where TIME(timestamp_col) > TIME('09:43:00')

SELECT id from table where TIME(timestamp_col) > '09:43:00'

【讨论】:

【参考方案2】:

试试这个:

SELECT * FROM <table_name>
WHERE date_format(timestamp_col,'%H:%i:%s') > '09:43:00'

【讨论】:

【参考方案3】:
SELECT id,modified_on FROM table
where date_format(modified_on,'%H:%i:%s') > '09:43:30'

【讨论】:

以上是关于MySQL SELECT WHERE datetime 匹配时间(不一定是天)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Select 语句,WHERE 'IN' 子句

具有多个 WHERE 和 SELECT 条件的更新 - MySql

在mysql select语句中使用条件where子句

[MySQL] 过滤数据

mysql select 字段别名是否可以用在 select中或者where中

当列不明确时,有啥方法可以强制 Mysql 在 where 子句中使用 select 中的列?