sql获取截止到去年近10年年份
时间: 2023-12-04 15:02:35 浏览: 39
假设当前年份是2021,可以使用以下SQL语句获取截止到去年近10年年份:
```
SELECT YEAR(CURDATE())-n AS year
FROM (SELECT 0 AS n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) AS nums
WHERE YEAR(CURDATE())-n >= 2011 AND YEAR(CURDATE())-n < 2021
```
解释一下这个SQL语句的逻辑:
1. 从 nums 表中选出 0 到 9 的整数。
2. 将当前年份减去选出的整数,得到近10年的年份。
3. 过滤掉小于2011年和大于等于2021年的年份。
4. 最后得到的结果是一个包含近10年年份的列表。
相关问题
sql获取近10年年份
你可以使用如下 SQL 语句获取近 10 年的年份:
```
SELECT YEAR(CURRENT_DATE) - n as year
FROM (
SELECT 0 as n 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
) nums
WHERE YEAR(CURRENT_DATE) - n >= YEAR(CURRENT_DATE) - 10
ORDER BY year DESC;
```
这个 SQL 语句使用了一个 subquery,其中 nums 是一个包含 0 到 9 的数字的表,然后通过计算年份差来获取最近 10 年的年份。
sql获取到某个年份到去年间的所有年份
可以使用如下 SQL 语句获取从当前年份到去年的所有年份:
```
SELECT YEAR(NOW()) AS year
UNION
SELECT YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR)) AS year
UNION
SELECT YEAR(DATE_SUB(NOW(), INTERVAL 2 YEAR)) AS year
UNION
SELECT YEAR(DATE_SUB(NOW(), INTERVAL 3 YEAR)) AS year
-- 这里可以继续添加需要的年份
ORDER BY year DESC;
```
其中,`YEAR()` 函数用于提取日期时间值的年份部分,`NOW()` 函数用于获取当前日期时间,`DATE_SUB()` 函数用于从指定日期时间中减去指定的时间间隔。`UNION` 表示将多个 `SELECT` 语句的结果合并在一起,并去除重复行。`ORDER BY` 表示按照年份降序排序。