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단에서부터 데이터를 가공해서 가져오기 용이해서 잘 활용하는 것이 좋을거 같다.
'DataBase > mssql' 카테고리의 다른 글
[MSSQL] 컬럼 검색하기 (0) | 2023.07.05 |
---|---|
MSSQL : FORMAT함수 (0) | 2023.06.07 |
CONVERT, FORMAT함수 : 날짜(DATE) 포맷 변환 (0) | 2023.06.02 |
SQL Server의 OUTPUT 절: 데이터 변경 작업의 결과 추적 및 활용 (0) | 2023.05.23 |
STRING_SPLIT [파라미터 잘라서 활용하기] (0) | 2023.03.02 |