【问题标题】:MySQL select all dates that are an increment of x daysMySQL选择以x天为增量的所有日期
【发布时间】:2014-05-26 19:13:45
【问题描述】:

是否可以查询未来以 x 天为增量的所有个日期?

SELECT * 
FROM bookings 
WHERE date >= CURDATE()
AND 
(
       date = CURDATE() + INTERVAL 6 DAY 
   OR  date = CURDATE() + INTERVAL 12 DAY
   OR  date = CURDATE() + INTERVAL 18 DAY
   etc.
)

【问题讨论】:

    标签: mysql sql date


    【解决方案1】:

    类似:

    SELECT
         *
    FROM table
    WHERE
        date >= CURDATE()
        AND
        DATEDIFF(CURDATE(), date) % 6 = 0
    

    Datediff 返回天数差,% 6 表示返回除以六的余数。

    【讨论】:

    • 哈,如此简单却很棒!谢谢你,@scragar
    【解决方案2】:

    是的。 不过,你的逻辑是有缺陷的。你可能是说

    SELECT * 
    FROM table 
    WHERE 
        date = CURDATE() + INTERVAL 6 DAY 
    OR  date = CURDATE() + INTERVAL 12 DAY
    OR  date = CURDATE() + INTERVAL 18 DAY
    

    并且不要使用像“table”这样的表名和像“date”这样的字段名(即保留字)。

    【讨论】:

    • 您误解了这个问题。 OP 想要在未来每 6 天多一次。
    • 你是对的。不知何故,我跳过了问题的第一行。
    猜你喜欢
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 2022-12-12
    • 1970-01-01
    • 2017-05-06
    • 2017-09-13
    相关资源
    最近更新 更多