MYSQL - 按日期检测结果检索结果

时间:2010-04-13 20:01:43

标签: mysql date calendar proximity

我的问题是:

假设我们有一个带有UNIX datestamp date_column的calendar_table,我希望检索最接近今天日期的事件。

因此,例如,如果今天没有事件,请根据日期保留最接近的事件!

已更新

可能我需要更清楚,我需要检索的不仅仅是一个事件,而是表中所有事件的日期相同,最接近今天的日期!

谢谢你们所有人! ; - )

3 个答案:

答案 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

然后只按该字段排序并从列表中取出第一个。

相关问题