如何在mysql中比较时间

时间:2017-05-17 09:58:58

标签: php mysql sql

我有一列时间数据类型,我愿意比较它,但我不知道如何比较它。就像我想知道 时间大于10:30:00 。我怎么检查它?我写这个查询,但它没有显示任何结果,尽管该数据可用。我做错了什么

select PK, userID, lr.Date, lr.Time, Half, lr.InOut, Op_UserID, About
from loginrecord lr
where lr.Date Between '2017-05-17' AND '2017-05-17'
and lr.InOut = 1
and lr.Time > '10:30:00'

3 个答案:

答案 0 :(得分:2)

试试这个

select PK, userID, lr.Date, lr.Time, Half, lr.InOut, Op_UserID, About
from loginrecord lr
where lr.Date Between '2017-05-17' AND '2017-05-17'
and lr.InOut = 1
and lr.Time > CAST('10:30:00' AS time)

CAST()函数将任何类型的值转换为具有指定类型的值。目标类型可以是以下任何一种类型:BINARY,CHAR,DATE,DATETIME,TIME,DECIMAL,SIGNED,UNSIGNED。

CAST()函数通常用于返回具有指定类型的值,以便在WHERE,JOIN和HAVING子句中进行比较。

<强> Reference

答案 1 :(得分:1)

您可以使用TIME_FORMAT函数,如下所示:

select PK, userID, lr.Date, lr.Time, Half, lr.InOut, Op_UserID, About
from loginrecord lr
where lr.Date Between '2017-05-17' AND '2017-05-17'
and lr.InOut = 1
and TIME_FORMAT(lr.Time, '%H:%i') > '10:30'

答案 2 :(得分:1)

也可以使用直接访问小时,分钟和秒来比较值

select PK, userID, lr.Date, lr.Time, Half, lr.InOut, Op_UserID, About
from loginrecord lr
where lr.Date Between '2017-05-17' AND '2017-05-17'
and lr.InOut = 1
and HOUR(lr.Time) > 10
and MINUTE(lr.Time) > 30
and SECOND(lr.Time) > 00

有关详细信息,请参阅MYSQL Date and time funcitons