MySQL选择大于时间的下两行

时间:2014-03-20 16:18:35

标签: mysql sql datetime

我有一个数据库,它存储了列车时刻表的时间值。这是我的表:

CREATE TABLE IF NOT EXISTS `bahn_hausen` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `time` time NOT NULL,
  `day` varchar(12) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=132 ;

现在我想在now()之后选择接下来的两行:

SELECT time FROM bahn_hausen WHERE time > now() LIMIT 2

问题在于,现在是>比上一次(23:45:00),没有选择行。但是,我想选择接下来的2个值(00:15:00和00:45:00)。这仅在now()为> = 0:00:00

时才能正常工作

* [edit] *为了澄清:我遇到的问题是SQL没有认识到00:15大于23:45。

我该怎么做? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

您的查询几乎就在那里。您只需要一个order by

SELECT time
FROM bahn_hausen
ORDER BY time > now() desc, time
LIMIT 2;

答案 1 :(得分:0)

您是否尝试使用方法CURTIME()或DATEDIFF(...)> 0

https://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_current-time