SQL Server 2014 Exploding Dates仅显示年份

时间:2017-10-20 15:38:19

标签: sql sql-server

我从表中得到了这些数据:

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部分获得最大值,我可以这样做吗?

2 个答案:

答案 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