关于根据天数获取下一个日期:根据天数获取下一个日期 – mysql

Get next date based on the day number - mysql

我是 mysql 新手,我想写一个查询,我在其中传递日期编号,它给我下一个日期在即将到来的/当前周。

示例:

  • 如果今天是星期一(2018 年 1 月 1 日)并且我通过了 5,那么我想要星期五(2018 年 1 月 5 日)。
  • 如果今天是星期五(2018 年 1 月 5 日)并且我通过了 1,那么我想要星期一(2018 年 1 月 8 日)。
  • 我已经编写了一个基本查询,但我无法使其通用。

    查询:

    1
    select date_add(now(), interval dayofweek(now()) + (6 - @day_num)  day);


    试试(可以进一步优化,但先看看能不能用):

    1
    2
    3
    4
    5
    SELECT
      CASE WHEN WEEKDAY(CURDATE()) + 1 >= @day_num
           THEN (CURDATE() + INTERVAL (6 - WEEKDAY(CURDATE())) DAY) + INTERVAL @day_num DAY
           ELSE (CURDATE() + INTERVAL (0 - WEEKDAY(CURDATE())) DAY) + INTERVAL (@day_num-1) DAY
      END AS next_date;