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

MSSQL 특정일 요일 구하기

1. DATENAME, DATEPART 구문 (Syntax)

DATENAME ( datepart , date )

DATEPART ( datepart , date )


2. datepart 인수

MSSQL 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 예제 실행 화면입니다.

함께 보면 좋은 게시글

위로 스크롤