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 인수

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')
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)
함께 보면 좋은 게시글
- MSSQL 원하는 날짜 및 시간 구하기 (DATEADD)
- MSSQL 데이터 형식 변환하기 (CAST 및 CONVERT)
- MSSQL 공백 제거 방법 (LTRIM, RTRIM, TRIM) – 문자열 함수 (1)
- MSSQL 문자열 치환, 대/소문자 변환 (REPLACE, UPPER, LOWER)
- MSSQL 월의 시작 일자, 마지막 일자 구하기 – EOMONTH 함수
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
