728x90
SQL Server에서 시작일자와 종료일자 사이의 일수 또는 시간, 분, 초 등의 차이를 계산할 때 DATEDIFF 함수를 사용한다. DATEDIFF 함수는 두 날짜를 비교하여 DATEPART 구분자에 따라서 차이를 계산하여 결과를 정수로 반환한다.
■ 날짜 차이 계산
SELECT DATEDIFF(DAY, '2021-06-12', '2021-07-13') AS [일차이]
, DATEDIFF(MONTH, '2021-06-12', '2021-07-13') AS [개월차이]
, DATEDIFF(YEAR, '2021-06-12', '2021-07-13') AS [년차이]
DAY : 시작일자와 종료일자 사이의 일수를 반환
MONTH, YEAR : 월, 년이 바뀐 횟수를 반환 (주의: 30일을 1개월 또는 365일을 1년으로 판단하지 않음)
■ 시간 차이 계산
SELECT DATEDIFF(HOUR, '2021-07-13 19:10:00', '2021-07-13 20:20:00') AS [시간차이]
, DATEDIFF(MINUTE, '2021-07-13 19:10:00', '2021-07-13 20:20:00') AS [분차이]
, DATEDIFF(SECOND, '2021-07-13 19:10:00', '2021-07-13 20:20:00') AS [초차이]
MINUTE : 시작일시와 종료일시 사이의 분을 반환
SECOND : 시작일시와 종료일시 사이의 초를 반환
HOUR : 시간이 바뀐 횟수를 반환 (주의: 60분을 1시간으로 판단하지 않음)
■ DATEPART 코드표
명칭 | DATEPART | DATEPART(약어) |
년 | YEAR | YY, YYYY |
월 | MONTH | MM, M |
일 | DAY | DD, D |
시 | HOUR | HH |
분 | MINUTE | MI, N |
초 | SECOND | SS, S |
밀리초 | MILLISECOND | MS |
주 | WEEK | WK, WW |
분기 | QUARTER | QQ, Q |
DATEPART는 약어를 사용해도 동일한 결과가 반환된다.
SELECT DATEDIFF(DD, '2021-06-12', '2021-07-13') AS [일차이]
, DATEDIFF(MM, '2021-06-12', '2021-07-13') AS [개월차이]
, DATEDIFF(YY, '2021-06-12', '2021-07-13') AS [년차이]
'DataBase > MSSQL' 카테고리의 다른 글
[MSSQL] 현재시간 GETDATE()와 SYSDATETIME() 차이 (0) | 2022.07.19 |
---|---|
[MSSQL] 이전 행, 다음 행 값 가져오기 (LAG, LEAD) (0) | 2022.07.19 |
[MSSQL] 날짜, 시간 더하기 빼기 (DATEADD) (0) | 2022.07.11 |
[MSSQL] DATENAME 함수 사용법 (요일, 분기, 날짜분리) (0) | 2022.04.19 |
[MSSQL] FORMAT 함수 사용법 (TO_CHAR, 날짜, 소수점) (0) | 2022.04.19 |
댓글