首页 > 解决方案 > 在 MySQL 中返回 5 个月后一个月内的所有结果?

问题描述

我正在构建一个可以在给定月份的任何时间运行的 MySQL 报告。运行时,它需要在 5 个月后提取所有记录日期为该月的结果 - 例如,如果在 12 月的任何时间运行,它需要提取日期在 5 月 1 日到 5 月之间的任何记录2020 年 5 月 31 日,如果在 1 月运行,它将通过 6 月的记录等等。

一直在寻找一些不同的日期函数,但似乎找不到合适的函数让我使用日期间隔向前看 5 个月,但这只会显示我从该月的第一天到最后一天。

我似乎最接近的是这个(我的查询不喜欢):

due_date <= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 6, -1) AND due_date >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 5, 0

谢谢

标签: mysql

解决方案


您可以尝试以下查询以获得该结果 -

SELECT adddate(current_date, interval 5 month) curr_date
      ,DATE_SUB(adddate(current_date, interval 5 month),INTERVAL DAYOFMONTH(adddate(current_date, interval 5 month))-1 DAY) AS '1st of month'
      ,last_day(adddate(now(), interval 5 month)) last_of_month;

是小提琴。


推荐阅读