首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在MYSQL中为当月创建6个月累计

尝试在MYSQL中为当月创建6个月累计
EN

Stack Overflow用户
提问于 2018-06-26 07:19:29
回答 1查看 419关注 0票数 0

我正在尝试实现以下布局。如果我选择curdate(),也就是6月,我应该得到之前的6个月。6个月也应该包括6月.i.e。如果curdate =2018年6月25日,我的退出应该是从2018年6月到2018年1月的几个月。有谁能帮我解决语法问题吗?所有我现在有的是个人查询,这将使我在MYSQL之前的6个月。

前几个月6月4月3月2月1月4月3月2月1月DEc

EN

回答 1

Stack Overflow用户

发布于 2018-06-26 08:24:58

使用Date_Add函数。请参见下面的示例:

代码语言:javascript
复制
/* 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'
                );

我用来设置测试的代码:

代码语言:javascript
复制
/* 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');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51032951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档