【发布时间】:2011-02-07 15:14:12
【问题描述】:
我的问题是:
假设我们有一个带有 UNIX 日期戳 date_column 的 calendar_table,我想检索最接近今天日期的事件。
因此,例如,如果今天没有活动,请根据日期保留最接近的活动!
更新
可能我需要更清楚,我需要检索的不仅仅是一个事件,而是表中具有相同日期的所有事件,最接近今天的日期!
谢谢大家! ;-)
【问题讨论】:
标签: mysql date calendar proximity
我的问题是:
假设我们有一个带有 UNIX 日期戳 date_column 的 calendar_table,我想检索最接近今天日期的事件。
因此,例如,如果今天没有活动,请根据日期保留最接近的活动!
更新
可能我需要更清楚,我需要检索的不仅仅是一个事件,而是表中具有相同日期的所有事件,最接近今天的日期!
谢谢大家! ;-)
【问题讨论】:
标签: mysql date calendar proximity
SELECT * FROM `calendar_table` WHERE `date_column` = (SELECT `date_column` FROM `calendar_table` ORDER BY ABS(`date_column` - UNIX_TIMESTAMP()) ASC LIMIT 1)
【讨论】:
SELECT *
FROM `calendar_table`
ORDER BY ABS(`date_column` - UNIX_TIMESTAMP()) DESC
LIMIT 1
【讨论】:
您可以做的是选择今天日期和事件日期之间的差异,并选择最小的结果。
首先选择这样的差异:SELECT DATEDIFF(EventDate, Now()) As Datediff FROM calendar
或者如果您还想查找过去的事件:SELECT Abs(DATEDIFF(EventDate, Now())) As Datediff FROM calendar
然后只需按该字段排序并从列表中删除第一个。
【讨论】: