본문 바로가기
DataBase/mssql

MSSQL DATEDIFF 함수를 활용한 날짜 간격 계산

by 노랑파랑 2023. 5. 19.
반응형

MSSQL 데이터베이스에서 날짜와 시간을 처리하고 계산해야 하는것은 매우 자주 있는 일이다. MSSQL은 날짜 간의 차이를 계산하는 다양한 함수들을 제공한다. 이번 글에서는 그 중에서도 DATEDIFF 함수에 대해 알아보았다.

DATEDIFF 함수는 두 날짜 사이의 차이를 계산하는 데 사용된다. 주로 날짜, 시간, 분, 초 등의 단위를 기준으로 기간을 계산할 때 활용된다. 함수의 기본 구문은 다음과 같다:

DATEDIFF(datepart, startdate, enddate)
  • datepart: 계산에 사용할 단위를 지정. 예를 들어, 'year'는 연도 간의 차이를 계산하고, 'month'는 월 간의 차이를 계산한다.
  • startdate: 시작 날짜/시간.
  • enddate: 종료 날짜/시간.

 

datepart옵션에는 전체 이름이나 약어가 들어갈 수 있는데, 이는 아래와 같다

전체이름 약어
year y, yy, yyyy
quarter qq, q
month mm, m
dayofyear dy
day dd, d
week wk, ww
hour hh
minute mi, n
second ss, s
millisecond ms
microsecond mcs
nanosecond ns

 

 

간단한 예시를 통해 DATEDIFF 함수의 사용법을 보자. 아래의 쿼리는 'orders' 테이블에서 주문일과 현재 날짜 간의 일 수 차이를 계산하는 예제이다:

SELECT DATEDIFF(day, order_date, GETDATE()) AS day_difference
FROM orders

위의 쿼리에서 'day'는 일 수를 계산하는 단위로 사용되었고, 'order_date'는 주문일을 나타내는 필드다. 'GETDATE()' 함수는 현재 날짜와 시간을 반환한다.

결과로는 각 주문에 대한 현재 날짜와의 일 수 차이가 계산되어 출력된다.



DATEDIFF 함수는 다양한 상황에서 유용하게 사용될 수 있다. 예를 들면 어제부터 현재까지 10분 단위로 페이지 view 횟수를 확인 할 때는 아래와 같이 쓸 수 있다:

DECLARE @yeter_day DATETIME
SET @yeter_day = DATEADD(DAY, -1, GETDATE())


SELECT
	*
FROM member.page
WHERE dt >= @yeter_day
GROUP BY (DATEDIFF(MINUTE, @yeter_day, day_column) / 10)



DATEDIFF 함수는 MSSQL에서 날짜 간격을 계산하는 강력한 도구이다. 이 함수를 사용하여 장기적인 계획, 기간별 분석, 데이터 비교 등 다양한 상황에서 DATEDIFF 함수를 적용하여 필요한 정보를 추출할 수 있다.

DATEDIFF 함수를 활용한 날짜 간격 계산에 대해 살펴보았는데, 해당 함수를 사용해서 DB단에서부터 데이터를 가공해서 가져오기 용이해서 잘 활용하는 것이 좋을거 같다.

 

반응형