从mysql数据库中获取即将到来的日期记录,在codeigniter中


get upcoming date record from mysql database, In 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天内即将到来的活动。我不想提供天数。

我想参加第一个即将到来的活动,不管是在几天后还是几天内。

谢谢!

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

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

这样不行吗?

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

尝试

如果列类型为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"

在下面尝试它可以完美地工作

select * from table where start_time between NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY)

你可以这样使用来获取接下来的7天数据,或者如果你想要最后7天,那么代替DATE_ADD使用DATE_SUB它会起作用,或者你可以像一样使用

 start_time between NOW() AND DATE_ADD(NOW(), INTERVAL 1 WEEK)

这也是有效的。要了解更多信息,请查看此参考资料https://dev.mysql.com/doc/en/date-and-time-functions.html

谢谢大家,

我得到了答案:

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