MSSQL 특정일 요일 구하기 (DATENAME, DATEPART)

MSSQL 특정일 요일 구하기 (DATENAME, DATEPART)

특정 일자에 대해서 요일을 구할 때가 빈번하게 발생하는데요. MS SQL에서는 DATENAME(), DATEPART() 함수를 제공하고 있습니다. DATENAME(), DATEPART() 함수는구문(Syntax)은 동일하고 반환 형식만 다릅니다. DATENAME() 함수는 NVARCHAR 이고 DATEPART() 함수는 INT 형식으로 반환합니다.

그럼 DATENAME(), DATEPART() 함수에 대해서 알아보죠.

포스트 기준

– Microsoft SQL Server 2019

– SSMS 18.10


1. DATENAME, DATEPART 구문 (Syntax)

DATENAME ( datepart , date )

DATEPART ( datepart , date )


2. datepart 인수


3. 반환 형식

  • DATENAME() 함수 : NVARCHAR
  • DATEPART() 함수 : INT

샘플 예제

1. DATENAME 

※ MS SQL 언어 설정이 영어이면 영어로 표기됩니다. (예: Monday)

SELECT 1, LEFT(DATENAME(WEEKDAY, GETDATE()), 1)
     UNION ALL
     SELECT 2, SUBSTRING(DATENAME(WEEKDAY, '2023-01-01'), 1, 1)
     UNION ALL
     SELECT 3, DATENAME(W, '20230505')
     UNION ALL
     SELECT 4, DATENAME(DW, '2023.12.25')
DATENAME 예제 실행 화면입니다.


2. DATEPART 

▶ 일, 월, 화, 수, 목, 금, 토 → 1, 2, 3, 4, 5, 6, 7 (INT 반환)

SELECT (CASE DATEPART(WEEKDAY, '2023-12-25') 
                 WHEN 1 THEN '일' 
                 WHEN 2 THEN '월' 
                 WHEN 3 THEN '화' 
                 WHEN 4 THEN '수' 
                 WHEN 5 THEN '목' 
                 WHEN 6 THEN '금' 
                 WHEN 7 THEN '토' END)
DATEPART 예제 실행 화면입니다.


이 글이 도움이 되셨다면 공유를 부탁드립니다. 다음 글에서 뵙겠습니다!

위로 스크롤