본문 바로가기
  • [성공하는 개발자] - Developer
DataBase/MSSQL

[MSSQL] DATENAME 함수 사용법 (요일, 분기, 날짜분리)

by 세인보이 2022. 4. 19.
728x90

 

SQL Server에서 날짜 형식에서 년, 월, 일을 분리하거나 해당 날짜의 요일(weekday), 분기 등을 구하기 위해서는 DATENAME 함수를 사용하면 된다. 그리고 올해로부터 며칠째 인지 또는 몇 주째 인지도 구할 수 있다.

 

DATENAME 함수는 DATEPART 함수와 거의 유사하다. 차이라고 하면 DATENAME 함수는 결과를 문자로 반환하고, DATEPART 함수는 정수로 반환한다. 월(month)과 요일(weekday) 부분을 제외하면 두 함수 모두 동일하다.

 

| 날짜 분리 하기

SELECT DATENAME(YEAR, GETDATE())  AS [year]
     , DATENAME(MONTH, GETDATE()) AS [month]
     , DATENAME(DAY, GETDATE())   AS [day]

 

 

월(MONTH) 분리할 때 "0"을 포함하여 반환하는 부분이 조금 특이하며 그 외에는 DATEPART 함수와 동일하다.

 

| 시간 분리 하기

 

| 요일 구하기 (WEEKDAY)

SELECT DATENAME(WEEKDAY, GETDATE()) AS [weekday]

 

 

DATENAME 함수는 요일을 문자로 반환한다. (설정한 언어에 따라서 영어로 반환될 수도 있음)

 

DATEPART 함수를 사용하면 정수로 반환된다. (1:일, 2:월, 3:화, 4:수, 5:목, 6:금, 7:토)

예) SELECT DATEPART(WEEKDAY, GETDATE())

 

| 분기 구하기 (QUARTER)

SELECT DATENAME(QUARTER, GETDATE()) AS [quarter]

 

해당 날짜가 포함되는 분기를 리턴한다.

 

| 일 년 기준으로 며칠(일수) 구하기

SELECT DATENAME(DAYOFYEAR, GETDATE()) AS [dayofyear]

 

일 년 기준 1월 1일부터 오늘이 며칠째인지 일수를 반환한다.

 

| 일 년 기준으로 몇 주인지 구하기

SELECT DATENAME(WEEK, GETDATE()) AS [week]

 

인자 값을 약어로 사용 가능하니 아래의 코드표를 참고하면 된다.

 

명칭 인자 약어
YEAR YY, YYYY
MONTH MM, M
DAY DD, D
HOUR HH
MINUTE MI, N
SECOND SS, S
밀리초 MILLISECOND MS 
요일 WEEKDAY DW
분기 QUARTER QQ, Q
일년 중 며칠 DAYOFYEAR DY, Y
일년 중 몇주 WEEK WK, WW

 

 

인자를 약어로사용해도 동일한 결과가 반환된다.

 

 

인자를 소문자로 사용해도 결과는 동일하다.

728x90