2017-05-17 46 views
1

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

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' 
+1

http://stackoverflow.com/questions/8458290/mysql-select-data-from-database-between-two-dates看到这个希望它有帮助。 –

回答

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' 
+0

感谢guillaume –

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

+0

谢谢@AkshayP –

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