gpt4 book ai didi

mysql - 如何用SQL查询当年的月份和天数?

转载 作者:行者123 更新时间:2023-11-29 15:42:30 25 4
gpt4 key购买 nike

我需要一个 2 列 12 行的表作为 MySQL/SQL 查询的结果:

  1. 第一列是当年的 12 个月。
  2. 第二列是每个月的天数。

表格应类似于:

  • 1 月 31 日
  • 2 月 28 日
  • ... ...
  • 12 月 31 日

我尝试过:

DELIMITER $$
DROP PROCEDURE IF EXISTS my_loop$$
CREATE PROCEDURE my_loop()
BEGIN
DECLARE x INT;

SET x = 1;

WHILE x <= 12 DO
SELECT monthname(SUBDATE("2019-12-01", INTERVAL x month)) as months, day(LAST_DAY(SUBDATE("2019-12-01", INTERVAL x month))) as days;
SET x = x + 1;
END WHILE;

END$$
DELIMITER ;

call my_loop();

但它只打印出第一次迭代:

  • 月日
  • 1 月 31 日

如何在有或没有迭代的情况下解决这个问题?

最佳答案

您可以通过查询来完成此操作:

select monthname(makedate(year(curdate()), 1) + interval (x.mon - 1) month) as month_name,
day(last_day(makedate(year(curdate()), 1) + interval (x.mon - 1) month)) as days_in_month
from (select 1 as mon union all select 2 union all select 3 union all select 4 union all
select 5 as mon union all select 6 union all select 7 union all select 8 union all
select 9 as mon union all select 10 union all select 11 union all select 12
) x
order by x.mon;

Here是一个数据库<> fiddle 。

关于mysql - 如何用SQL查询当年的月份和天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57459617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com