2012-08-12 113 views
0

我需要存储在MySQL中的电视指南和我的想法是这样的:MySQL的时间比较

channel_id   day  start_time end_time 

AMC Breaking Bad:) Monday 19:00:00 20:30:00 

Other Program  Saturday 09:30:00 12:30:00 

end_timestart_timeTIME领域和存储小时

我的问题和问题是:

我怎样才能从MySQL得到什么节目都看NOW()?我不知道如何比较小时。我做了一些测试,但我什么也没得到。

希望你明白我的英文! 谢谢!

回答

3

我想你是问我如何获得当前NOW大于或等于start_time且小于end_time的程序列表。有了这些假设是SQL:

SELECT * FROM tv_guide 
WHERE CURTIME() BETWEEN start_time AND end_time; 

编辑:作为@Corbin笔记,您将需要检查一天。

+0

谢谢,它工作正常!再次感谢! – mauriblint 2012-08-12 03:01:58

+0

嗨,我还有一个问题!我怎么能减少CURRENT_TIME()函数几个小时,以获得即将推出的程序? – mauriblint 2012-08-12 12:59:19

+0

@mauriblint,DATE_SUB函数应该工作:WHERE DATE_SUB(CURTIME(),INTERVAL 2小时)之间的start_time和end_time。这会让你在当前时间前2小时或DATE_ADD获得当前时间之后的几个小时:WHERE DATE_ADD(CURTIME(),INTERVAL 2 HOURS)在start_time和end_time之间 – davidethell 2012-08-13 11:38:58

2
SELECT * FROM shows WHERE CURRENT_TIME() BETWEEN start_time AND end_time; 

你可能还需要检查的日子为好,但是这只是一个where子句(AND day = 'Friday')。

+1

+1捕捉这一天。 – davidethell 2012-08-12 02:54:31

+0

谢谢,它工作正常!再次感谢! – mauriblint 2012-08-12 03:02:44

+0

嗨,我还有一个问题!我怎么能减少CURRENT_TIME()函数几个小时,以获得即将推出的程序? – mauriblint 2012-08-12 12:59:52