mysql sql 生成 未来3年的 年份 月份列表
时间: 2024-11-09 12:23:43 浏览: 9
MySQL常用SQL语句总结包含复杂SQL查询
在MySQL中,你可以使用UNION ALL操作和DATE_FORMAT函数来生成未来三年的年份和月份列表。这是一个例子:
```sql
SELECT YEAR(CURRENT_DATE) + INTERVAL n YEAR AS 'Year'
FROM (
SELECT 0 UNION ALL
SELECT 1 UNION ALL
SELECT 2
) years_table
JOIN (
SELECT 0 UNION ALL
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9
) months_table ON 1
WHERE YEAR(CURRENT_DATE) + INTERVAL n YEAR <= DATE_ADD(CURRENT_DATE, INTERVAL 3 YEAR)
ORDER BY Year, MONTH(CURRENT_DATE + INTERVAL n YEAR);
```
这个查询首先创建了两个虚拟表,一个包含0到2的所有整数代表年份,另一个包含0到9的所有整数代表月份。然后通过JOIN将这两个表合并,形成从当前年份开始到未来三年的所有可能组合。
阅读全文