|
DEKLARÁLD @dt dátumidőpontot ÁLLÍTSON @dt=GETDATE() DEKLARÁLD @number int SET @number=3 --1. Határozd meg az év első vagy utolsó napjának dátumát --A. Az év első napja SELECT Co nVERT(char(5),@dt,120)+ '1-1' --B. Az év utolsó napja SELECT Co nVERT(char(5),@dt,120)+ '12-31' --2. Az adott dátum helyszíne első vagy utolsó napja annak a negyedévnek a --A. A negyedév első napja SELECT Co nVERT(datetime, Co nVERT(char(8), DATEADD(Mo nth, DATEPART(negyed,@dt)*3 hónap nth(@dt)-2, @dt), 120)+ '1 ')
--B. Negyedév utolsó napja (ÜGYÍTÉLET) SELECT Co nVERT(datetime, Co nVERT(char(8), DATEADD(Mo nth, DATEPART(negyed,@dt)*3 hónap nth(@dt), @dt), 120) +CASE WHEN DATEPART (Negyed,@dt) in(1,4) AZTÁN '31 'ELSE '30' VÉGE) --C. A negyedév utolsó napja (közvetlen push algoritmus) VÁLASZD DATEADD(Nap,-1, Co nVERT(char(8), DATEADD(Mo nth, 1+DATEPART(negyed,@dt)*3 hónap nth(@dt), @dt), 120)+ '1 ') --3. Az adott hónap első vagy utolsó napja, amelyben a megadott dátum található. --A. A hónap első napja SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')
--B. A hónap utolsó napja SELECT DATEADD(Day,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1') --C. A hónap utolsó napja (könnyen használható, rossz módszer) SELECT DATEADD(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt)) --4. Bármely hétnap, ahol a megadott dátum található. VÁLASZD DATEADD(Nap,@number-DATEPART(Hétköznap,@dt),@dt)
--5. Bármely hétnap, amelyben a megadott dátum található. --A. Vasárnap volt a hét első napja SELECT DATEADD(Nap,@number-(DATEPART(Hétköznap,@dt)+@@DATEFIRST-1)%7,@dt)
--B. Hétfő a hét első napja SELECT DATEADD(Nap,@number-(DATEPART(Hétköznap,@dt)+@@DATEFIRST-2)%7-1,@dt)
|