2014-10-09 121 views
-1

我正在一个事件管理项目,我需要从数据库中获得即将到来的事件,任何人都可以帮助我吗?从mysql数据库中获得即将到来的日期记录,在codeigniter

我使用

SELECT *FROM EVENTS WHERE DATE_ADD(event_date, INTERVAL YEAR(CURDATE())-YEAR(event_date) YEAR) 
     BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY) LIMIT 1; 

但它给我的事件中只有7天即将到来。 我不应该提供日子。

我想要得到第一个即将到来的活动,无论是之后还是在它将来的多少天内。

谢谢!

+0

首先的,请给你的表结构的详细信息。什么是'即将发生的事件'列名?只是命令该列desc – 2014-10-09 10:36:17

回答

2

这不是一个简单的与当前日期where子句比较

SELECT * 
FROM EVENTS 
WHERE event_date > CURDATE() 
ORDER BY event_date 
LIMIT 1; 
1

这不工作?

SELECT * FROM EVENTS WHERE event_date > CURDATE() ORDER BY event_date ASC LIMIT 1; 
+1

它将只会得到第一个事件,需要'今天>今天' – andrew 2014-10-09 10:38:16

+0

@andrew,真,更新! – goseo 2014-10-09 10:42:59

+0

这不起作用,它给了我最后的事件 – 2014-10-09 10:52:42

0

尝试

如果列类型datetime可以使用CURDATE()(MySQL的功能)或date()(PHP函数)

"SELECT *FROM EVENTS WHERE event_date > '".date('Y-m-d H:i:s')."' ORDER BY event_date limit 1" 

"SELECT *FROM EVENTS WHERE event_date > CURDATE() ORDER BY event_date limit 1" 

如果列类型date

"SELECT *FROM EVENTS WHERE event_date > '".date('Y-m-d')."' ORDER BY event_date limit 1" 
0

谢谢大家,

我得到了答案:

SELECT * FROM EVENTS 
WHERE event_date > CURDATE() 
ORDER BY event_date ASC LIMIT 1; 
+0

它给了我即将发生的事件,试试吧。 – 2014-10-09 10:55:06

相关问题