我想显示今年的所有月份(直到本月的月份)。例如,这是我想要的结果:
MONTHS
Jan
Feb
Mar
感谢您的帮助。谢谢。
答案 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