본문 바로가기

SQL

MSSQL: 요일 구하기 및 한글 영문 변환

반응형

통계를 구현하거나, 데이터의 해당하는 특정 날짜에 요일을 구하는 일은 흔히 발생합니다. 이번 글에서는 특정날짜의 요일을 구하고, MSSQL 언어설정에 따라 한글 또는 영문으로 요일을 변환해서 표기하는 방법에 대해서 알아보겠습니다.

MSSQL: 요일 구하기 및 한글 영문 변환
MSSQL: 요일 구하기 및 한글 영문 변환

1. 요일 구하기

  • DATEPART()
SELECT 
    DATEPART(W, GETDATE()),
    DATEPART(DW, GETDATE()),
    DATEPART(WEEKDAY, GETDATE())

W, DW, WEEKDAY 인수를 사용합니다.
W, DW, WEEKDAY 인수를 사용합니다.

DATEPART()를 이용하면 요일이 숫자 형태로 출력됩니다.
일요일 : 1
월요일 : 2
화요일 : 3
수요일 : 4
목요일 : 5
금요일 : 6
토요일 : 7

위 숫자 형태를 알아보기 쉬운 문자형태로 가공해 보도록 하겠습니다.

  • DATENAME()
SELECT 
    CONVERT(DATE, GETDATE()), 
    DATEPART(DW, GETDATE()), 
    DATENAME(DW, GETDATE())

특정날짜에 해당하는 요일명 표기
특정날짜에 해당하는 요일명 표기

 

 

2. 한글 또는 영문 요일명 변환하기

원하는 언어로 LANGUAGE를 설정해 주면 쉽게 처리 가능합니다.

--SET LANGUAGE 'KOREAN'
SET LANGUAGE 'ENGLISH'

SELECT 
	CONVERT(DATE, GETDATE()), 
	DATEPART(DW, GETDATE()), 
	DATENAME(DW, GETDATE())

 

영문 요일명으로 변경
영문 요일명으로 변경

 

 

3. 용도에 맞는 요일명으로 변환하기

간혹 요일 표기를 '금' , '(금)', 'Fri' 이런 식으로 한 글자로 하고 싶다거나 지정되지 않은 다른 형태로 변경하고 싶을 때는 DATEPART()에서 추출한 INDEX값을 CASE WHEN을 사용해서 변형합니다.

--SET LANGUAGE 'KOREAN'
SET LANGUAGE 'ENGLISH'

SELECT 
	CONVERT(DATE, GETDATE()), 
	DATEPART(DW, GETDATE()), 
	DATENAME(DW, GETDATE()),
	CASE 
		WHEN DATEPART(DW, GETDATE()) = 1 THEN '일'
		WHEN DATEPART(DW, GETDATE()) = 2 THEN '월'
		WHEN DATEPART(DW, GETDATE()) = 3 THEN '화'
		WHEN DATEPART(DW, GETDATE()) = 4 THEN '수'
		WHEN DATEPART(DW, GETDATE()) = 5 THEN '목'
		WHEN DATEPART(DW, GETDATE()) = 6 THEN '금'
		WHEN DATEPART(DW, GETDATE()) = 7 THEN '토'
		ELSE '?'
	END

 

CASE WHEN을 통한 변형
CASE WHEN을 통한 변형

 

4. 마치며

지금까지 MSSQL 요일 구하기, 한글 또는 영문 요일명 변환하기, 용도에 맞게 요일명 변환하기에 대해서 알아봤습니다.

실무에서 요일은 자주 쓰이지는 않기 때문에 보통 외우고 계시는 분은 많지 않으실 겁니다. 저 또한 필요한 경우에만 빠르게 찾아서 쓰는 정도로 알고 있습니다.

하지만 간혹 언어설정 때문에 요일표기가 영문으로 나온다던가, 원하는 형태의 표기로 맞춰야 할 경우 이처럼 간편하게 해결하기 위해 작성했습니다.

 

감사합니다.

반응형

'SQL' 카테고리의 다른 글

MSSQL: 순위 함수  (0) 2024.05.28
MSSQL: 중복 데이터 조회 및 삭제  (0) 2024.05.18
MSSQL 날짜 함수: 형식, 변환 및 연산  (0) 2024.05.07