我确信这是一项常见任务,尽管我所看到的所有示例都没有帮助我解决这个问题。
我有两张桌子:
events
- 醇>
schedules
带有外键事件。使用schedule_datetime_from
和schedule_datetime_until
Q值。选择所有活动时,我如何根据今天的日期获取/加入第一个最接近的时间表?例如,只返回最相关的时间表。
注意:每个活动可能有多个时间表。时间表也可能是过去的。
E.g e.schedule_datetime_from >= NOW() OR schedule_datetime_until > NOW()
将仅返回未来的时间表,但我如何也返回过去的时间表。或者我是否需要使用ORDER BY + LIMIT 1来实现此目的?
答案 0 :(得分:2)
select e.*, s.*
from
events e
inner join
schedules s on e.id = s.event_id
order by
abs(unix_timestamp(schedule_datetime_from) - unix_timestamp(now())))
limit 1
答案 1 :(得分:1)
这对我有用:
SELECT * FROM table 日期(date_column) 日期(CURDATE())和DATE(CURDATE()+ 7)之间;
这会给你一个星期的抬头!
答案 2 :(得分:0)
如果您想在日期之间选择一组事件,可以使用
SELECT * FROM events WHERE date BETWEEN 'mm-dd-yyyy' AND 'mm-dd-yyyy'
如果您想选择最近的日期,可以添加
ORDER BY date DESC LIMIT 1