[MSSQL] DATEPART 함수 사용법 (날짜 요일 구하기)
- 데이터베이스/MSSQL
- 2023. 5. 2.
SQL Server에서 해당 날짜의 요일(weekday)을 구하거나 년, 월, 일 추출 또는 분기를 구할 때는 DATEPART 함수를 사용하면 된다. DATEPART 함수와 거의 유사한 DATENAME 함도 있으며, DATEPART 함수와 DATENAME 함수의 차이는 결과를 정수로 반환하느냐 문자열로 반환하느냐의 차이라고 생각하면 된다. (요일과 월을 추출하는 부분만 다름)
목차 |
날짜 요일 구하기
SELECT DATEPART(WEEKDAY, GETDATE()) AS [weekday]
DATEPART( "datepart 인수 값", "날짜")
DATEPART 함수에서 WEEKDAY 인수를 사용하면 해당 날짜에서 요일에 해당하는 정수 반환한다.
(1: 일요일, 2:월요일, 3:화요일, 4:수요일, 5:목요일, 6:금요일, 7:토요일)
요일을 한글로 반환받고 싶으면 DATENAME 함수를 사용하면 된다.
SELECT DATENAME(WEEKDAY, GETDATE()) AS [weekday1] --한글 요일 구하기
, DATEPART(WEEKDAY, GETDATE()) AS [weekday2] --숫자 요일 구하기
DATENAME 함수와 DATEPART 함수의 사용법은 동일하며 요일을 한글 또는 정수로 반환하는 부분만 다르다.
년, 월, 일 추출하기
SELECT DATEPART(YEAR, GETDATE()) AS [year]
, DATEPART(MONTH, GETDATE()) AS [month]
, DATEPART(DAY, GETDATE()) AS [day]
해당 날짜의 년, 월, 일을 정수로 반환한다.
(DATENAME 함수를 사용할 경우 월을 "05" 두 자리 문자열로 반환한다. 그 외는 동일)
시, 분, 초 추출 하기
SELECT DATEPART(HOUR, GETDATE()) AS [hour]
, DATEPART(MINUTE, GETDATE()) AS [minute]
, DATEPART(SECOND, GETDATE()) AS [second]
해당 날짜의 시, 분, 초를 정수로 반환한다.
분기 구하기
SELECT DATEPART(QUARTER, GETDATE()) AS [quarter]
해당 날짜가 포함된 분기를 반환한다.
일 년 기준으로 일수 구하기
SELECT DATEPART(DAYOFYEAR, GETDATE()) AS [dayofyear]
일 년 기준 1월 1일부터 해당 날짜까지 일수를 반환한다.
일 년 기준으로 몇 주인지 구하기
SELECT DATEPART(WEEK, GETDATE()) AS [week]
일 년 기준 1월 1일부터 해당 날짜까지 몇 주인지 반환한다.
[ DATEPART 인수 코드표 ]
명칭 | 인수 | 약어 |
년 | 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 |
DATEPART 함수를 사용할 때 인수, 약어 모두 동일하게 사용할 수 있다.
SELECT DATEPART(WEEKDAY, GETDATE()) AS [weekday1] --요일 구하기
, DATEPART(DW, GETDATE()) AS [weekday2] --요일 구하기(약어)
, DATEPART(YEAR, GETDATE()) AS [year1] --년 추출하기
, DATEPART(YY, GETDATE()) AS [year2] --년 추출하기(약어)
인수와 약어 모두 동일한 결과를 반환하는 것을 확인할 수 있다.