Tarih Fonksiyonları etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Tarih Fonksiyonları etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

13 Şubat 2013 Çarşamba

Sql'de bazen belli tarih aralıklarını kullanmak gerekiyor.Bana haftanın ilk günü gibi bir sorgu lazım olmuştu aşağıdaki kodları aşağıdaki linkten bulmuştum.
http://www.ismailadar.com/post/2011/12/29/SQL-Serverda-Y%C4%B1l%C4%B1nAy%C4%B1n-ve-Haftan%C4%B1n-Ilk-ve-Son-Gunleri.aspx

Şimdi tekrar lazım olunca buraya da koymakta fayda olacağını düşündüm.

 
DECLARE @tarih DATETIME=GETDATE()
SELECT 'Onceki Ayın Son Gunu' Aciklama,CONVERT(VARCHAR(10),DATEADD(dd,-(DAY(@tarih)),@tarih),112) Tarih
UNION ALL
SELECT 'Ayın İlk Günü',CONVERT(VARCHAR(10),DATEADD(dd,-(DAY(@tarih)-1),@tarih),112) AS Date_Value
UNION ALL
SELECT 'Bugunun Tarihi',CONVERT(VARCHAR(10),@tarih,112) AS Date_Value
UNION ALL
SELECT 'Ayın Son Günü',CONVERT(VARCHAR(10),DATEADD(dd,-(DAY(DATEADD(mm,1,@tarih))),DATEADD(mm,1,@tarih)),112)
UNION ALL
SELECT 'Sonraki Ayın İlk Günü',CONVERT(VARCHAR(10),DATEADD(dd,-(DAY(DATEADD(mm,1,@tarih))-1),DATEADD(mm,1,@tarih)),112)
UNION ALL
SELECT 'Haftanın İlk Günü', DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0)
UNION ALL
SELECT 'Sonraki Haftanın İlk Günü', DATEADD(ww, DATEDIFF(ww,0,GETDATE())+1, 0)
UNION ALL
SELECT 'Yılın İlk Günü',DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
UNION ALL
SELECT 'Yılın Son Günü',DATEADD(dd,-1,DATEADD(yy,0,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0)))