选择MySQL中的下一个日期

时间:2009-11-09 23:05:02

标签: php date mysql

我有一个MySQL数据库表中的日期列表(慈善书摊的日期),我希望在页面上显示。在一个页面上,我显示下一个摊位的日期,另一个页面显示下个月的摊位日期。 (目前我正在使用无序的HTML列表并使用PHP选择日期,但它有点混乱,我还希望将日期与存储在数据库中的筹款总数联系起来。)

我想将日期放在数据库中,以便我可以将日期与每周的筹款总数联系起来。我想,一旦我能用最近的即将到来的日期确定日期,我可以使用'LIMIT 1'来选择下周的显示日期,'LIMIT 4'说明我需要在哪里显示日期下个月,但我无法弄清楚如何识别最近的日期记录 - 确定当前日期然后选择最近的日期......我感觉可能有一个MySQL日期可以说服这些功能,但无法确切知道如何。

关于我如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:2)

如果您的列是DATETIME字段,则可以使用SELECT...WHERE event_date > "2009-11-06"ORDER BY event_date来识别下一个字段。

SELECT * FROM so_events 
WHERE event_date > "2009-11-06 15:36:00"
ORDER BY event_date ASC
LIMIT 4

MySQL将在内部为您完成工作,并选择其时间戳大于您在WHERE子句中指定的行的行。

答案 1 :(得分:2)

如果我理解正确,您可以选择今天之后的下四个日期。 在MySQL中,您可以使用CURDATE()函数作为“今天”位,然后对您的select语句应用订单和限制。例如,

SELECT stall_date
FROM   stall_dates
WHERE  stall_date >= CURDATE()  -- >= assumes you want today's to show too
ORDER BY
       stall_date
LIMIT 4

如果需要,请使用ORDER BY stall_date DESC来撤消订购。