sql - Display year in the future -


i have app cannot display year past 2016 in drop down.

at same time, , time goes on, need display past years.

for example:

  • in year 2017, need display 2016 , 2017.
  • in year 2018, need display 2016, 2017, , 2018.
  • and on

so have developed following code accomplish this.

do know of better way accomplish in tsql?

select [year] ( select year(getdate()) 'year' union select year(dateadd(year,-1,getdate())) 'year' year(getdate()) > 2017 union select year(dateadd(year,-2,getdate())) 'year' year(getdate()) > 2018 union select year(dateadd(year,-3,getdate())) 'year' year(getdate()) > 2019 union select year(dateadd(year,-4,getdate())) 'year' year(getdate()) > 2020 union select year(dateadd(year,-5,getdate())) 'year' year(getdate()) > 2021 union select year(dateadd(year,-6,getdate())) 'year' year(getdate()) > 2022 union select year(dateadd(year,-7,getdate())) 'year' year(getdate()) > 2023 ) x order [year] desc 

try this, generate list of year 2016 current year

with cte_test as(     select 2016 nyear     union     select nyear+1        cte_test     nyear+1 <= year(getdate()) ) select * cte_test 

Comments