2012-08-12 114 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