Automatische Ermittlung der Steuerperiode aus Tagesdatum im Format YYMM
Aufgabe: nach der Scannung soll das Feld Steuerperiode automatisch auf Basis des Tagesdatum gesetzt werden.
Lösung: Update-Skript per MSSQL
Herausforderung dabei ist es, das Jahr ohne Jahrhundert darzustellen und auch die einstelligen Monatszahlen mit einer führenden Null zu begleiten. Evtl. geht das über den Datentyp von Getdate auch eleganter, habe aber nicht gefunden wie, daher die Lösung mittels Substring.
Detlev Eberhardt, 19.08.21
update [dwdata].[dbo].[FEICKERT]
set
Postdatum = GETDATE()
,STEUERPERIODE = Substring(convert(varchar(5),YEAR(GETDATE())),3,2) +
case
when
len(convert(varchar(5),MONTH(GETDATE()))) = 1 then '0' + convert(varchar(5), MONTH(GETDATE()))
else
convert(varchar(5), MONTH(GETDATE()))
end
where
BARCODE is not null and postdatum is null and Belegart = 'NEU';