MySql中与时间比较当前时间在使用SQL行
问题描述:
首先我有一个这样的表: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点。我如何选择下周的演讲(下周我有一堂课)。
当我一天没有课,我该如何选择下一个课,我有一堂课......?
答
尝试这样的事:
select `Hour`, Class
from your_table
where time(`Hour`) > curtime()
and `Day` = DAYNAME(now())
order by time(`Hour`) asc
limit 1
小心! SELECT结果集中行的顺序在形式上是不可预知的。您可能无法通过'LIMIT 1'取回所希望的行。 – 2012-07-27 13:15:52
您是对的。我错过了。增加了一个'order by'来修复它。 – 2012-07-27 13:17:17