如何在MySQL中按DateTime字段的小时部分过滤查询?

woo*_*ata 5 mysql datetime

我需要从表中选择行,例如,无论日期如何,时间都是> = 18:00:00。问题在于值是日期时间类型,因此旁边还有日期。例如2012-01-25 18:00:00。

table1
======
row 1:   id='1'   datetime='2012-01-25 18:00:00'
row 2:   id='2'   datetime='2012-01-27 15:00:00'
row 3:   id='3'   datetime='2012-01-30 19:45:00'
Run Code Online (Sandbox Code Playgroud)

我需要选择第1行和第3行。

有没有办法结合LIKE和> =来进行时间> ='%18:00:00',其中%代表任何日期?

ype*_*eᵀᴹ 5

您可以使用TIME()函数:

WHERE TIME(`datetime`) >= '18:00:00'
Run Code Online (Sandbox Code Playgroud)


Ike*_*ker 5

select *
from table1
where HOUR(datimetime) >= 18
Run Code Online (Sandbox Code Playgroud)