|
VERKLAAR @dt datum SET @dt=GETDATE() VERKLAAR @number int SET @number=3 --1. Specificeer de datum van de eerste of laatste dag van het jaar --A. De eerste dag van het jaar SELECT Co nVERT(char(5),@dt,120)+ '1-1 ' --B. De laatste dag van het jaar SELECT Co nVERT(char(5),@dt,120)+ '12-31 ' --2. De eerste of laatste dag van het kwartaal waarop de opgegeven datum zich bevindt --A. Eerste dag van het kwartaal SELECT Co nVERT(datetime, Co nVERT(karakter(8), DATEADD(Mo nth, DATEPART(Kwartaal, @dt)*3-Maand n-@dt)-2, @dt), 120)+ '1 ')
--B. Laatste dag van het kwartaal (ZAAK-uitspraak) SELECT Co nVERT(datetime, Co nVERT(karakter(8), DATEADD(Mo nth, DATEPART(Kwartaal, @dt)*3-Mo n-@dt), @dt), 120) +CASE WHEN DATEPART(Quarter,@dt) in(1,4) DAN '31 'ELSE '30' EINDE) --C. Laatste dag van het kwartaal (direct push algoritme) SELECTEER DATEADD(Dag,-1, Co nVERT(karakter(8), DATEADD(Mo nth, 1+DATEPART(Kwartaal,@dt)*3-Mo nth(@dt), @dt), 120)+ '1 ') --3. De eerste of laatste dag van de maand waarop de opgegeven datum zich bevindt --A. De eerste dag van de maand SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')
--B. De laatste dag van de maand SELECT DATEADD(Dag,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ') --C. Laatste dag van de maand (makkelijk te gebruiken verkeerde methode) SELECTEER DATEADD(Mo nth,1,DATEADD(Dag,-DAG(@dt),@dt)) --4. Elke dag van de week waarop de opgegeven datum zich bevindt SELECTEER DATEADD(Dag,@number-DATEPART(Weekdag,@dt),@dt)
--5. Elke dag van de week waarop de opgegeven datum zich bevindt --A. Zondag als eerste dag van de week SELECTEER DATEADD(Dag,@number-(DATEPART(Weekdag,@dt)+@@DATEFIRST-1)%7,@dt)
--B. Maandag is de eerste dag van de week SELECTEER DATEADD(Dag,@number-(DATEPART(Weekdag,@dt)+@@DATEFIRST-2)%7-1,@dt)
|