|
RAZGLASITE @dt datum NASTAVI @dt=GETDATE() DEKLARIRAJ @number INT SET @number=3 --1. Določite datum prvega ali zadnjega dne v letu --A. Prvi dan v letu SELECT Co nVERT(char(5),@dt,120)+ '1-1' --B. Zadnji dan v letu SELECT Co nVERT(char(5),@dt,120)+ '12-31' --2. Prvi ali zadnji dan četrtletja, v katerem je določen datum --A. Prvi dan četrtletja SELECT Co nVERT(datetime), Co nVERT(char(8), DATEADD(Več milijonov, DATEPART(četrtinka,@dt)*3-mesec nth(@dt)-2, @dt), 120)+ '1 ')
--B. Zadnji dan četrtletja (sodba ZADEVE) SELECT Co nVERT(datetime), Co nVERT(char(8), DATEADD(Več milijonov, DATEPART(četrtinka,@dt)*3-mesec nth(@dt), @dt), 120) +PRIMER, KO DATEPART(Četrtletje,@dt) v(1,4) NATO '31 'ELSE '30' KONEC) --C. Zadnji dan četrtletja (algoritem direktnega potiska) IZBERI DATEADD(Dan,-1, Co nVERT(char(8), DATEADD(Več milijonov, 1+DATEPART(Četrtina,@dt)*3-Mesec nth(@dt), @dt), 120)+ '1 ') --3. Prvi ali zadnji dan v mesecu, v katerem je določen datum --A. Prvi dan v mesecu SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')
--B. Zadnji dan v mesecu SELECT DATEADD(Day,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ') --C. Zadnji dan v mesecu (enostavna za uporabo napačna metoda) SELECT DATEADD(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt)) --4. Kateri koli dan v tednu, na katerem je določen datum IZBERI DATEADD(Dan,@number-DATEPART(Delovni dan,@dt,@dt)
--5. Kateri koli dan v tednu, na katerem je določen datum --A. Nedelja kot prvi dan v tednu IZBERI DATEADD(Dan,@number-(DATEPART(Delovni dan,@dt)+@@DATEFIRST-1)%7,@dt)
--B. Ponedeljek je prvi dan v tednu IZBERI DATEADD(Dan,@number-(DATEPART(Delovni dan,@dt)+@@DATEFIRST-2)%7-1,@dt)
|