之間,我試圖建立一個自動事件倒計時。我想要做的是使用MySQL填補下一個即將到來的事件的倒計時。MySQL的搜索日期和時間
如果該事件是在未來,該代碼會顯示「即將發生的事件 - 倒計時」,如果該事件目前正在然後顯示「事件發生」。
我有一個表的結構是這樣的:
CREATE TABLE jos_eventlist_events (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
catsid INT UNSIGNED,
dates DATE,
times TIME,
enddates DATE,
endtimes TIME,
published TINYINT(1),
title VARCHAR(255)
) Engine=InnoDB;
INSERT INTO jos_eventlist_events
VALUES
(1, 6, '2012-01-15', '21:00', '2012-01-15', '22:00', 1, 'Partying'),
(2, 6, '2012-01-15', '23:00', '2012-01-16', '01:00', 1, 'More partying')
;
所以基本上,查詢應該做一些類似於這樣的:如果當前正在發生任何事件,檢索下一個即將發生的事件。如果發生事件,則顯示它。
下面的查詢是一個敲門磚,以什麼我想要實現的。
SELECT catsid,id,dates,times,endtimes,published,title
FROM jos_eventlist_events
WHERE catsid = 6 AND published = 1
AND dates && times >= CURDATE() && CURTIME()
AND dates && endtimes <= CURDATE() && CURTIME()
LIMIT 1
請記住,我的服務器比我當地時間晚5個小時。
我知道我失去了一些東西與此真的很傻,但你可以提供任何幫助將不勝感激。
正確[示例代碼](http://sscce.org/)(在這裏,SQL語句)比任何特設模式和樣品更有用數據格式。請使用'CREATE TABLE'和'INSERT ... VALUES'作爲樣本。所需的結果不需要作爲示例代碼呈現,因爲結果是代碼的輸出,而不是代碼本身。 – outis 2012-01-16 01:02:22
如果使用相同的時區,每日期和時間(表列,[連接時區(http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html)),您的當地時區並不重要。所有時間數據應使用GMT,UTC或服務器時區進行處理,並僅在發送給用戶時轉換爲用戶的時區。 – outis 2012-01-16 01:19:49