Özellikle finansal uygulamalarda çok kullanılan haftalık yaşlandırma olayına bir örnek olabilecek bir script oldu :)
İçinde bulunduğumuz haftanın başlangıç gününü veriyor.
Şöyle;
SET DATEFIRST 7;
SELECT DATEPART(wk,GETDATE()) HAFTA,
CASE WHEN @@DATEFIRST - datepart(dw,GETDATE()) > 0 THEN
DATEADD(day, @@DATEFIRST - DATEPART(dw,GETDATE()) - 7, GETDATE())
ELSE
DATEADD(day, @@DATEFIRST - DATEPART(dw,GETDATE()), GETDATE())
END HAFTA_BASLANGIC_GUNU;
Burda haftanın başlangıç günü 7 yani Cumartesi olarak kabul ediliyor. Bunu istediğiniz gibi değiştirebilirsiniz.
Varsayılan olarak SQL Serverda haftanın başlangıç günü Pazardır (1) bundan sonra sırayla Cumartesiye (7) kadar gidiyor. Bu örnekte Cumartesi olarak verdim.