|
DEKLARIEREN Sie @dt Termin SET @dt=GETDATE() DECLARE @number int SATZ @number=3 --1. Geben Sie das Datum des ersten oder letzten Jahrestags an. --A. Der erste Tag des Jahres SELECT Co nVERT(char(5),@dt,120)+ '1-1 ' --B. Der letzte Tag des Jahres SELECT Co nVERT(char(5),@dt,120)+ '12-31 ' --2. Der erste oder letzte Tag des Quartals, an dem das angegebene Datum liegt --A. Erster Tag des Quartals SELECT Co nVERT(datetime, Co nVERT(char(8), DATEADD (Mo nth, DATEPART(Quartal, @dt)*3-Moth nth(@dt)-2, @dt), 120)+ '1 ')
--B. Letzter Tag des Quartals (CASE-Urteil) SELECT Co nVERT(datetime, Co nVERT(char(8), DATEADD (Mo nth, DATEPART(Quartal, @dt)*3 Monate nth(@dt), @dt), 120) +FALL WENN DATEPART(Quarter,@dt) in(1,4) DANN '31 'ELSE '30' ENDE) --C. Letzter Tag des Quartals (Direkt-Push-Algorithmus) DATUM AUSWÄHLEN (Tag,-1, Co nVERT(char(8), DATEADD (Mo nth, 1+DATEPART(Quartal,@dt)*3-Moth nth(@dt), @dt), 120)+ '1 ') --3. Der erste oder letzte Tag des Monats, an dem das angegebene Datum liegt --A. Der erste Tag des Monats SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')
--B. Der letzte Tag des Monats DATEADD auswählen(Tag,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ') --C. Letzter Tag des Monats (einfach zu verwendende falsche Methode) DATEADD auswählen(Mo nth,1,DATEADD(Tag,-TAG(@dt),@dt)) --4. Jeder Wochentag, an dem das angegebene Datum liegt DATEADD AUSWÄHLEN(Tag,@number-DATEPART(Wochentag,@dt),@dt)
--5. Jeder Wochetag, an dem das angegebene Datum liegt --Ein. Sonntag als erster Wochentag DATEADD auswählen(Tag,@number-(DATEPART(Wochentag,@dt)+@@DATEFIRST-1)%7,@dt)
--B. Montag ist der erste Wochentag DATEADD auswählen(Tag,@number-(DATEPART(Wochentag,@dt)+@@DATEFIRST-2)%7-1,@dt)
|