选择今年的月份MySql

时间:2019-03-20 02:17:20

标签: mysql

我想显示今年的所有月份(直到本月的月份)。例如,这是我想要的结果:

MONTHS
Jan
Feb
Mar

感谢您的帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

使用以下命令可以留出一个月的时间(1-12岁),您可以加入其他字段:

SELECT month, MONTHNAME(DATE_ADD(CONCAT(YEAR(NOW()),'-01-01'), INTERVAL month-1 MONTH)) as name_of_month
FROM (SELECT 1 month
             UNION ALL
             SELECT 2 month
             UNION ALL
             SELECT 3 month
             UNION ALL
             SELECT 4 month
             UNION ALL
             SELECT 5 month
             UNION ALL
             SELECT 6 month
             UNION ALL
             SELECT 7 month
             UNION ALL
             SELECT 8 month
             UNION ALL
             SELECT 9 month
             UNION ALL
             SELECT 10 month
             UNION ALL
             SELECT 11 month
             UNION ALL
             SELECT 12 month) m
 WHERE month <= MONTH(NOW())

答案 1 :(得分:1)

尽管这在编程语言中非常琐碎,但是尝试使用mysql时却有点复杂。

您可以查看此处运行的实时代码。 https://paiza.io/projects/zcABYyyM_uu3r2LX7cCmfQ

DELIMITER //
CREATE PROCEDURE generate_months_upto_current_month()
BEGIN
    DECLARE month  INT;
    DECLARE inter  INT;
    DECLARE result  VARCHAR(25);

    DECLARE current_month  INT;

    SET month = 1;
    SET current_month = MONTH(CURRENT_DATE());

    WHILE month  <= current_month DO
        SET inter = current_month-month;
        SET result = MONTHNAME(DATE_SUB(CURRENT_DATE(), INTERVAL inter MONTH));
        SELECT SUBSTRING(result,1,3); -- to truncate to 3 letter months
        SET month = month + 1;
    END WHILE;
END //
DELIMITER ;


CALL generate_months_upto_current_month();

由于我使用循环,因此不得不使用存储过程。我主要使用mysql日期函数来整理日期交互。

有关以下内容,请参见以下资源Date functions