之间,我试图建立一个自动事件倒计时。我想要做的是使用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