티스토리 뷰

데이터베이스/MSSQL

Week Of Year

메모하는습관 2013. 4. 27. 07:00

mssql에서 week of year 값 구하기 (postgresql의 iyyyiw와 같은 값)

ALTER PROCEDURE dbo.sp_week_of_year
	@date datetime, -- 날짜
	@first_day_of_week int -- 주간의 시작 요일
AS
BEGIN
	set nocount on;
	
	-- 주간의 시작 요일을 설정 한다.
	set datefirst @first_day_of_week;
	
	declare @week_first datetime
	declare @year_first datetime

	-- 입력받은 일자 시작요일로 변경
	set @week_first = @date - (datepart(weekday, @date) - 1);
	
	-- 해당년도 1월1일
	set @year_first = dateadd(year, datediff(year, 0, @week_first), 0)
	
	-- 주간의 시작 요일을 월요일로 설정 한다.
	set datefirst 1;
	declare @year_first_dow int;
	set @year_first_dow = datepart(weekday, @year_first);
	
	-- 주간의 시작 요일을 설정 한다.
	set datefirst @first_day_of_week;
		
	declare @year int;
	declare @week_of_year int;
	
	set @year = datepart(year, @year_first);
	set @week_of_year = datepart(week, @week_first) + (case when @year_first_dow = @first_day_of_week then 0 else -1 end);
		
	select @year as year, @week_of_year as week_of_year;
END


'데이터베이스 > MSSQL' 카테고리의 다른 글

[SUM] expression을(를) 데이터 형식 int(으)로 변환하는 중 산술 오버플로 오류가 발생!!  (0) 2009.12.08
dbcc inputbuffer  (0) 2009.07.15
sp_lock  (1) 2009.07.15
LOCK 처리 방법  (0) 2009.07.15
Connection Count  (0) 2009.06.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday