DECLARE @ReferenzDatum AS DATE = '31.01.2023';
DECLARE @Datum AS DATE = @ReferenzDatum;
DECLARE @i AS INT = 0;
IF OBJECT_ID('tempdb.dbo.#Datumsbereich', 'U') IS NOT NULL
  DROP TABLE #Datumsbereich; 
CREATE TABLE #Datumsbereich(
 DatumZahlung Date,
 Datum Date,
 DifferenzMonate int
 )
WHILE @DATUM <= CONVERT(DATE,GETDATE())
BEGIN
INSERT INTO #Datumsbereich (DatumZahlung, Datum, DifferenzMonate) VALUES (@ReferenzDatum, @Datum, DATEDIFF(m, @ReferenzDatum,@Datum))
SET @Datum = DATEADD(d,1,@Datum)
END
SELECT FORMAT(DatumZahlung,'d','de-de') AS DatumZahlung
,FORMAT(Datum,'d','de-de') AS Datum  
,DifferenzMonate
FROM #Datumsbereich