2012-07-27 72 views
1

首先我有一个这样的表:MySql中与时间比较当前时间在使用SQL行

userID Day  Hour Class 
--------------------------------------- 
65  Monday 08:00 Math 
65  Monday 09:00 Bio 
65  Monday 13:00 History 
65  Tuesday 08:00 Sports 
65  Friday 10:00 Math 

我根据当前时间选择课程。 当它是08:30那么我需要选择下一个小时,它是09:00,它是Bio。这很好。 但是,当它是10:00那么我需要选择13:00这是History

补充:可以说今天是星期二,现在是07:00。有了下面的代码,我可以选择周二08:00的下一堂课。假设今天是星期二和中午12点。我如何选择下周的演讲(下周我有一堂课)。

当我一天没有课,我该如何选择下一个课,我有一堂课......?

回答

1

尝试这样的事:

select `Hour`, Class 
from your_table 
where time(`Hour`) > curtime() 
and `Day` = DAYNAME(now()) 
order by time(`Hour`) asc 
limit 1 
+0

小心! SELECT结果集中行的顺序在形式上是不可预知的。您可能无法通过'LIMIT 1'取回所希望的行。 – 2012-07-27 13:15:52

+0

您是对的。我错过了。增加了一个'order by'来修复它。 – 2012-07-27 13:17:17

相关问题