DECLARE @old_datefirst INT
SELECT @old_datefirst = @@DATEFIRST
DECLARE @v_dayname_monday INT
SELECT @v_dayname_monday = 1
SET DATEFIRST @v_dayname_monday
DECLARE @v_date DATETIME
SELECT @v_date = '2009-08-01' ---특정 날짜 지정.
SELECT @v_date date
, DATEPART(year, @v_date) [Year]
, DATEPART(week, @v_date) [Week of Year]
, DATEPART(dayofyear, @v_date) [Day of Year]
, CASE
WHEN DATEPART(weekday, @v_date) > 1 THEN DATEADD(day, (DATEPART(weekday, @v_date)-1) * -1 , @v_date)
ELSE @v_date END [First-day of Week]
, CASE
WHEN DATEPART(weekday, @v_date) < 7 THEN DATEADD(day, 7-DATEPART(weekday, @v_date), @v_date)
ELSE @v_date END [Last-day of Week]
SET DATEFIRST @old_datefirst
/*
실행결과
date Year Week of Year Day of Year First-day of Week Last-day of Week
2009-08-01 2009 31 213 2009-07-27 2009-08-02
*/
Posted by 좐군


