从codeqliter获取来自mysql数据库的即将到来的日期记录

时间:2014-10-09 10:30:53

标签: php mysql

我正在开展一个活动管理项目,我需要从数据库中获取即将发生的事件,有人可以帮助我吗?

我正在使用

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天内即将举办的活动。 我不想提供日子。

我希望获得第一个即将举行的活动,无论是在活动结束后多少天内都无关紧要。

谢谢你!

5 个答案:

答案 0 :(得分:2)

这不会起作用吗?

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

答案 1 :(得分:2)

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

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

答案 2 :(得分: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"

答案 3 :(得分:1)

在下面尝试,效果很好

public class NotifyWorker extends Worker {

public NotifyWorker(@NonNull Context context, @NonNull WorkerParameters params) {
    super(context, params);
}

@NonNull
@Override
public Worker.Result doWork() {

    // Method to trigger an instant notification

    Context context= getApplicationContext();

    notification();

    return Worker.Result.SUCCESS;

}

}

您可以像这样使用它来获取未来7天的数据,或者如果您想要过去7天,则可以使用DATE_SUB代替DATE_ADD USE DATE_SUB它将起作用,或者您可以使用like

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

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

答案 4 :(得分:0)

谢谢大家,

我得到了答案:

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