我从表中得到了这些数据:
id arrival_date departure_date
1 2017-10-10 2017-10-15
2 2017-11-16 2017-11-30
3 2017-10-14 2017-10-31
4 2018-05-12 2017-05-22
5 2021-01-16 2021-03-15
6 2018-06-02 2017-07-02
我想要的只是爆炸这些日期,但我只想展示一年
date
2017
2018
2019
2020
2021
这些应该是我想看到的一次是他们对这些的任何疑问? 注意:如果今年是2018年它应该在2018年开始,所以我将在该实例中使用getdate(),我想在departure_date部分获得最大值,我可以这样做吗?
答案 0 :(得分:1)
只需使用YEAR(arrival_date)
和YEAR(departure_date)
答案 1 :(得分:1)
您可以尝试递归cte
DECLARE @maxYear INT
SELECT @maxYear = MAX(YEAR(departure_date)) FROM YourTable
;WITH cte
AS
(
SELECT YEAR(GETDATE()) AS [Year]
UNION ALL
SELECT [Year] + 1
FROM cte
WHERE [Year] < @maxYear
)
SELECT *
FROM cte
<强> DEMO 强>