簡體   English   中英

嘗試在MYSQL中為當前月份創建6個月的滾動

[英]Trying to create 6 Months Rolling for current Month in MYSQL

我正在嘗試實現以下布局。 如果我選擇的curdate()是6月,我應該得到之前的6個月。6個月也應該包括6月。即如果curdate = 6月25-2018,我的退出時間應該是從2018年6月到2018年1月。 誰能幫我解決語法問題。 我現在所擁有的只是個別查詢,這些查詢將使我擁有6個月的MYSQL學習時間。

前一個月六月五月二月六月一月五月二月一月DEc

使用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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM