我有一个数据库,它存储了列车时刻表的时间值。这是我的表:
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。
我该怎么做? 谢谢你的帮助。
答案 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