DataBase/mssql

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

노랑파랑 2023. 5. 19. 14:47
반응형

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단에서부터 데이터를 가공해서 가져오기 용이해서 잘 활용하는 것이 좋을거 같다.

 

반응형