我的问题是:
假设我们有一个带有UNIX datestamp date_column的calendar_table,我希望检索最接近今天日期的事件。
因此,例如,如果今天没有事件,请根据日期保留最接近的事件!
已更新
可能我需要更清楚,我需要检索的不仅仅是一个事件,而是表中所有事件的日期相同,最接近今天的日期!
谢谢你们所有人! ; - )
答案 0 :(得分:3)
SELECT * FROM `calendar_table` WHERE `date_column` = (SELECT `date_column` FROM `calendar_table` ORDER BY ABS(`date_column` - UNIX_TIMESTAMP()) ASC LIMIT 1)
答案 1 :(得分:2)
SELECT *
FROM `calendar_table`
ORDER BY ABS(`date_column` - UNIX_TIMESTAMP()) DESC
LIMIT 1
答案 2 :(得分:0)
你可以做的是选择今天的日期和活动日期之间的差异,并选择最小的结果。
首先选择这样的差异:
SELECT DATEDIFF(EventDate, Now()) As Datediff FROM calendar
或者如果你想找到过去的事件:
SELECT Abs(DATEDIFF(EventDate, Now())) As Datediff FROM calendar
然后只按该字段排序并从列表中取出第一个。