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

时间:2012-01-25 15:18:53

标签: mysql datetime

我需要从表中选择行,例如无论日期如何,时间都是> = 18:00:00。问题是值是datetime类型,所以旁边也有日期。例如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'

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

有没有办法将LIKE和> =结合起来做时间> ='%18:00:00',其中%代表什么日期?

3 个答案:

答案 0 :(得分:5)

您可以使用TIME()功能:

WHERE TIME(`datetime`) >= '18:00:00'

答案 1 :(得分:4)

select *
from table1
where HOUR(datimetime) >= 18

答案 2 :(得分:1)

这样的事情可能是:

SELECT * 
FROM yourTable
WHERE
   EXTRACT(HOUR FROM YourDate)>18