프로그래밍/DB

[DB] MSSQL 요일 정보 (datename, datepart), 요일 한글 함수

ss-pro 2022. 8. 31. 22:35
반응형

요일정보를 확인하는 방법에 대해 알아 보겠습니다.  요일정보를 확인하는 함수는 DATENAME,DATEPART로 MSSQL내장되어있는 함수로 사용가능하며 요일값을 변환(일,월,화,수...토)해서 받고 싶을경우는 사용자 함수를 만들어서 사용하면됩니다. 

1. DATENAME, DATEPART함수사용 
DATENAME함수를 사용해서 날짜필드의 요일값을 확인할 수 있습니다. DATENAME(weekday, 날짜필드)문으로 실행해보면 아래와 같이  일요일,월요일...토요일 한글로 나타나는 부분을 확인 할 수 있습니다.  MSSQL이 한글버전이여서 아래와 같이 나오며 영문버전은 Sunday와 영문으로 결과값을 반환합니다.

MSDN자료를 살펴보면 DATENAME(datepart,날짜형)부분에 datepart는 아래와 같은 항목을 지원하니 적절하게 필요한경우 사용하면됩니다. 

DATEPART함수는 요일정보를 숫자값으로 표시합니다.  DATEPART(WEEKDAY,날짜필드) 와 같이 조회하면 일요일:1,월요일:2,... 토요일:7로 값을 반환합니다. 

2. 사용자 함수 사용 (요일값을 월,화,수...일로 반환)
ufnDateName이라는 사용자 함수를 만들어서 요일 한글자만 반환하는 함수를 만들어 보겠습니다.  datename함수를 사용하여 날짜정보를 가져온다음 Replace문을 사용해서 요일만 반환처리 하게 합니다. 

1
2
3
4
5
6
7
8
9
10
11
12
CREATE FUNCTION [dbo].[ufnDateName]
(
    @sourceDatetime datetime
)
RETURNS NVARCHAR(1)
AS 
BEGIN
    RETURN 
    (
       select replace(datename(weekday,@sourceDatetime),'요일','')
    )
END

[dbo].[ufnDateName](hire_date) 와 같이 사용자 함수를 호출 하면 요일값이 일,월,화,수...,토와 같이 한글자만 반환되는 부분을 확인 할 수 있습니다.