【问题标题】:Selecting the next date in MySQL在 MySQL 中选择下一个日期
【发布时间】:2009-11-09 23:05:02
【问题描述】:

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

不过,我想将日期放入数据库中,以便将日期与每周的筹款总额联系起来。我在想,一旦我可以用最近的即将到来的日期确定日期,我就可以使用“LIMIT 1”来选择下周的显示日期,“LIMIT 4”表示我需要在哪里显示日期下个月,但我不知道如何用最近的即将到来的日期识别记录 - 识别当前日期,然后选择最近的日期......我感觉可能是 MySQL 日期之一可以说服的函数来帮助解决这个问题,但无法确切地弄清楚如何。

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

【问题讨论】:

    标签: php date mysql


    【解决方案1】:

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

    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 反转排序。

    【讨论】:

      【解决方案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 子句中指定的时间戳的行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-02
        • 1970-01-01
        • 2019-01-20
        • 2016-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多