|
DECLARE @dt tarih saati SET @dt=GETDATE() DEKLARASYON @number SET @number=3 --1. Yılın ilk veya son gününün tarihini belirtin --A. Yılın ilk günü SELECT Co nVERT(char(5),@dt,120)+ '1-1' --B. Yılın son günü SELECT Co nVERT(char(5),@dt,120)+ '12-31' --2. Belirlenen tarihin bulunduğu çeyreğin ilk veya son günü --A. Çeyreğin ilk günü SELECT Co nVERT(datetime, Co nVERT(char(8), DATEADD(Mo nth, DATEPART(Çeyrek,@dt)*3-Mo nth(@dt)-2, @dt), 120)+ '1 ')
--B. Çeyreğin son günü (DAVA KARARI) SELECT Co nVERT(datetime, Co nVERT(char(8), DATEADD(Mo nth, DATEPART(Çeyrek,@dt)*3-Mo nth(@dt), @dt), 120) +CASE WHEN DATEPART (Çeyrek,@dt) in(1,4) SONRA '31' 'ELSE '30' SONU) --C. Çeyreğin son günü (doğrudan itme algoritması) DATEADD(Gün,-1, Co nVERT(char(8), DATEADD(Mo nth, 1+DATEPART(Çeyrek,@dt)*3-Mo nth(@dt), @dt), 120)+ '1 ') --3. Belirtilen tarihin geçtiği ayın ilk veya son günü --A. Ayın ilk günü SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1')
--B. Ayın son günü DATEADD'i SEÇİ(Gün,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1') --C. Ayın son günü (kullanımı kolay yanlış yöntem) DATEADD'i SEÇİ(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt)) --4. Belirtilen tarihin geçtiği haftanın herhangi bir günü SEÇ DATEADD(Gün,@number-DATEPART(Hafta Günİ,@dt),@dt)
--5. Belirtilen tarihin bulunduğu haftanın herhangi bir günü --A. Pazar haftanın ilk günü olarak DATEADD(Gün,@number-(DATEPART(Hafta İşİ,@dt)+@@DATEFIRST-1)%7,@dt)
--B. Pazartesi haftanın ilk günü DATEADD(Gün,@number-(DATEPART(Hafta İbiri,@dt)+@@DATEFIRST-2)%7-1,@dt)
|