[MSSQL] DATENAME 함수 사용법 (요일, 분기, 날짜분리)
- 데이터베이스/MSSQL
- 2021. 3. 2.
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 함수와 동일하다.
시간 분리 하기
SELECT DATENAME(HOUR, GETDATE()) AS [hour]
, DATENAME(MINUTE, GETDATE()) AS [minute]
, DATENAME(SECOND, GETDATE()) AS [second]
, DATENAME(MILLISECOND, GETDATE()) AS [millisecond]
요일 구하기 (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 |
인자를 약어로사용해도 동일한 결과가 반환된다.
인자를 소문자로 사용해도 결과는 동일하다.