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

[MSSQL] 날짜, 시간 차이 일수 계산 (DATEDIFF)

by Sein-JH 2022. 7. 14.
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 [년차이]

 

참고 : https://gent.tistory.com/430?category=874679

댓글