我正在开展一个活动管理项目,我需要从数据库中获取即将发生的事件,有人可以帮助我吗?
我正在使用
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 :(得分: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;