Wydzielenie zbioru dat SQL Server

Wydzielenie zbioru dat SQL Server
PA
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:33
0

Hej,
Mam 2 kolumny z datami:

DataOd = 2020-01-01
DataDo = 2020-06-01

Na podstawie powyższych dat muszę wyciągnąć miesiące(najlepiej ostatni dzień), które mieszczą się w tym zbiorze, czyli finalnie ma to wyglądać tak:
2020-01-31
2020-02-29
2020-03-31
2020-04-30
2020-05-31
2020-06-30

Czy da się to obsłużyć jednym zapytaniem, bądź czy istnieje funkcja SQL, która wyznacza taki zbiór? Dzięki za pomoc

PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:37 minut
  • Postów:3879
3

Można:

Kopiuj
select
	--dla SQL w wersji >=2012
	EOMONTH(dateadd(month,number,'2020-01-01'))
	--dla niższych wersji
	,DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,dateadd(month,number,'2020-01-01'))+1,0))
from 
	spt_values 
where 
	type = 'p' 
	and number between 0 and datediff(month,'2020-01-01','2020-06-01')

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.