当前位置: 首页 > 知识库问答 >
问题:

尝试在MYSQL中为本月创建6个月滚动

武卓
2023-03-14

我正在努力实现以下布局。如果我选择curdate(),它是六月,我应该得到之前的6个月。6个月也应该包括六月。如果curdate=2018年6月25日至2018年1月,我的外出时间应该是从2018年6月至2018年1月的几个月。有谁能帮我解释一下语法吗。我现在有的只是个别的查询,这将给我在MySQL之前的6个月。

月份前几个月6月5月4月3月2月5月4月3月2月

共有1个答案

况弘新
2023-03-14

使用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');
 类似资料:
  • 笔试分为选择题(单选和多选)和编程题(2) 选择题知识点:虚函数特性,自旋锁特性,哈夫曼树,子网掩码与主机数,基类与继承类 编程题: 1、给定数组降序排序输出前百分之三十中的最小数 思路:我用了冒泡排序直接求数组数×0.3-1 的下标元素 2、求一组 ipv4 网址的最大子网掩码中 1 的个数 这个完全没思路,计网看得少,对于二进制的操作也不会😔😔😔 #实习笔试# #CVTE# #C++暑期

  • 问题内容: 可以说我在mysql中有这两个表。 表格1: 表2: 然后,我有此查询以获取每个月的员工分析: 该查询将输出: 但是,如果我从查询中替换“ 2016-04-01”和“ 2016-07-31”之间的日期,则不会向我显示7月记录,因为它在表1中不存在,这不是我想要的。我仍然想得到这样的结果: 有人对此吗?请帮助我。谢谢! 问题答案: 考虑以下模式,其中第三个表是提到的年/月帮助程序表。He

  • 问题内容: 我目前正在开发一个显示文件的应用程序,并允许成员通过许多不同的参数来搜索这些文件,其中一个是日期范围。 我遇到的问题是数据库架构不是我自己开发的,数据库的创建者创建了一个“ date”表,其中包含“ day”,“ month”,“ year”字段。 我想知道如何从表中选择特定的日期,月份,年份,并在SQL中创建日期对象,以便可以比较用户使用BETWEEN输入的日期。 下面是日期表的结构

  • 我有以下查询,我想从表中选择比所选视频的当前时间不超过6个月的所有视频 我从中得到了这个值:

  • 问题内容: 您好,我正在使用此sql查询来获取基于月份的图表表示形式的最近12个月的记录: 但是,如果一个月没有任何记录,则它不会按预期包含在结果集中,并且我正在使用php进行大量计算以完成所需的操作。 我的问题是:是否有一种方法可以检索一个简单的结果集,其中包含过去12个月每个月的驱动器总数,并且如果一个月中有0个驱动器,则还必须将其包含在结果集中显示。 问题答案: 您需要使用一个表进行外部联接