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 |
인자를 약어로사용해도 동일한 결과가 반환된다.
인자를 소문자로 사용해도 결과는 동일하다.
'DataBase > MSSQL' 카테고리의 다른 글
[MSSQL] 날짜, 시간 차이 일수 계산 (DATEDIFF) (0) | 2022.07.14 |
---|---|
[MSSQL] 날짜, 시간 더하기 빼기 (DATEADD) (0) | 2022.07.11 |
[MSSQL] FORMAT 함수 사용법 (TO_CHAR, 날짜, 소수점) (0) | 2022.04.19 |
[MSSQL] ROLLUP 사용법 (소계, 합계) (0) | 2022.04.19 |
[MSSQL] 조인 방법 쉽게 정리 (INNER JOIN, OUTER JOIN) (0) | 2022.04.19 |
댓글