mysql怎么查询距离当前6个月的月份?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql怎么查询距离当前6个月的月份?相关的知识,希望对你有一定的参考价值。

最后显示的格式是YYYY-MM

比如说我想查询距离这个月6个月的月份 输出结果:
2013-04
2013-05
2013-06
2013-07
2013-08
2013-09

参考技术A oracle的,算是抛砖引玉
SELECT SUBSTR(add_months(TRUNC(sysdate,'yyyy'), ROWNUM +(to_number(TO_CHAR(sysdate,'mm'))-6-1)),0,7) MONTH
FROM DUAL
  CONNECT BY ROWNUM <=6;

尝试在 MYSQL 中为当前月份创建 6 个月滚动

【中文标题】尝试在 MYSQL 中为当前月份创建 6 个月滚动【英文标题】:Trying to create 6 Months Rolling for current Month in MYSQL 【发布时间】:2018-06-25 23:19:29 【问题描述】:

我正在尝试实现以下布局。如果我选择 curdate() 这是 6 月,我应该得到前 6 个月。6 个月也应该包括 6 月。即如果 curdate = 2018 年 6 月 25 日,我的退出时间应该是从 2018 年 6 月到 2018 年 1 月的几个月。任何人都可以帮我解决语法问题。我现在所拥有的只是个人查询,这将使我在 MYSQL 中获得前 6 个月的时间。

月份 前几个月 六月 五月 四月 马尔 二月 一月 五月 马尔 二月 一月 德克

【问题讨论】:

这是所需的输出。本月 上月 六月 五月,四月,三月,二月,一月 五月, 三月, 二月, 一月, 十二月 【参考方案1】:

使用 Date_Add 函数。请参阅以下示例:

/* Query to select last 6 months (to the day) */
SELECT
    *
FROM 
    test_dates
WHERE 
    `date` > date_add(curdate(), INTERVAL -6 MONTH)



/* Query to get every date from 01/01/2018 to 06/25/2018 */
SELECT
    `date`
FROM
    test_dates
WHERE
    STR_TO_DATE(CONCAT(YEAR(`date`), '-', MONTH(`date`), '-01'), '%Y-%m-%d') 
    >= 
    STR_TO_DATE(
                CONCAT(
                        YEAR(DATE_ADD(curDate(), INTERVAL -5 MONTH)),
                        '-',
                        MONTH(DATE_ADD(curDate(), INTERVAL -5 MONTH))
                        , '-01'
                        )
                , '%Y-%m-%d'
                );

我用来设置测试的代码:

/* Create a table to test */
DROP TABLE IF EXISTS test_dates;
CREATE TABLE IF NOT EXISTS test_dates (
    `date` datetime
);


/* Insert Test Dates */
INSERT INTO test_dates (`date`) VALUES ('2018-06-01');
INSERT INTO test_dates (`date`) VALUES ('2018-05-01');
INSERT INTO test_dates (`date`) VALUES ('2018-04-01');
INSERT INTO test_dates (`date`) VALUES ('2018-03-01');
INSERT INTO test_dates (`date`) VALUES ('2018-02-01');
INSERT INTO test_dates (`date`) VALUES ('2018-01-01');
INSERT INTO test_dates (`date`) VALUES ('2017-012-01');
INSERT INTO test_dates (`date`) VALUES ('2017-011-01');

【讨论】:

以上是关于mysql怎么查询距离当前6个月的月份?的主要内容,如果未能解决你的问题,请参考以下文章

sql 怎么查询每一年1到12个月的数据

MYSQL 怎样获取指定月份的每一天,求助

mysql 查询统计! 我要统计12个月的数据!

mysql查询指定月份范围内,每个月的指定id下的数据量

sql 查询中 有12个月表 写一个查询从中提取所有日期

如何在SHELL获取当天时间的月份和上个月的月份还有下个月的月份