본문 바로가기
데이터베이스[DB]/MSSQL

[MSSQL] DATEDIFF, DATEADD - 날짜 계산하기

by 낭만의개꿈 2026. 6. 22.
반응형

 

 

실무에서 " 오늘부터 30일 후 ", " 두 날짜 사이가 며칠인지 ",  " 특정 일자로부터 오늘이 며칠째인지" 와 같은 날짜 계산이 필요한 경우가 꽤 자주 있다. 이럴 때 사용하는 함수가 DATEDIFF 와 DATEADD 다. 오늘은 이 두가지 함수를 한 번에 정리해 보려고 한다.

Create Data
CREATE TABLE #temp_contract
(
    member_nm   VARCHAR(20),
    start_dt    DATE,
    end_dt      DATE
)

INSERT INTO #temp_contract VALUES ('홍길동', '2026-01-01', '2026-06-30')
INSERT INTO #temp_contract VALUES ('임꺽정', '2026-03-15', '2026-09-14')
INSERT INTO #temp_contract VALUES ('고길동', '2025-12-01', '2026-11-30')

SELECT * FROM #temp_contract

 

#temp_contract retrieve

 

DATEDIFF 
  • 두 날짜 사이의 차이 계산
  • DATEDIFF(단위, 시작일, 종료일)
  • 종료일 - 시작일 기준으로 차이값을 반환
  • 단위에 따라 일 (DAY), 월 (MONTH), 년(YEAR) 등으로 결과가 달라짐
SELECT  member_nm,
        start_dt,
        end_dt,
        DATEDIFF(DAY,   start_dt, end_dt) AS diff_day,
        DATEDIFF(DD,   start_dt, end_dt) AS diff_day,
        DATEDIFF(MONTH, start_dt, end_dt) AS diff_month,
        DATEDIFF(MM, start_dt, end_dt) AS diff_month
  FROM  #temp_contract

DATEDIFF DAY, MONTH 조회

 

단위를 DAY로 쓰면 일수 차이, MONTH 로 쓰면 월수 차이가 반환된다.

MONTH 의 경우 정확한 날짜 기준이 아니라 월 단위 절삭으로 계산되기 떄문에 1월 1일 ~ 6월 30일은 5개월로 표기된다.

약어로도 사용할 수 있는데 DAY와 DD  / MONTH와 MM 은 같은 단위로 사용된다.

 

자주 쓰는 단위 목록 및 약어 표기

 

단위 약어 설명
YEAR YY 연도 차이
MONTH MM 월 차이
DAY DD 일 차이
HOUR HH 시간 차이
MINUTE MI 분 차이
SECOND SS 초 차이

 

DATEADD
  • 날짜에 값 더하기/빼기
  • DATEADD(단위, 더할값, 기준날짜)
  • 더할 값에 음수를 넣으면 날짜를 빼는 것으로 처리
SELECT  member_nm,
        end_dt,
        DATEADD(DAY,   30, end_dt) AS plus_30day,   -- 만료일 30일 후
        DATEADD(MONTH, -1, end_dt) AS minus_1month  -- 만료일 1개월 전
  FROM  #temp_contract

 

DATEADD DAY, MONTH 조회

 

만료일 기준으로 30일 후 날짜나, 1개월 전 날짜를 구할 수 있다. 만료 알림 발송 대상을 추출할 때 이런 패턴들을 자주 사용하게 된다.

 

 

 

[MS-SQL] DATEPART, DATENAME - 일자(요일,주차,분기) 함수

특정 일자의 요일이나 주차 또는 분기 등을 추출하여 사용해야할 때가 있다. 이럴 때 DATEPART 라는 함수를 이용하면 일자의 요일 등을 확인할 수가 있다.DATEPART날짜를 인수로 받아 해당 날짜의 요

dogsdream.tistory.com

 

 

[MS-SQL] CONVERT, FORMAT, YEAR, MONTH, DAY

지난 글에서 CONVERT 변환에 관련하여 작성하였었는데, 오늘은 날짜 포맷 변경 방법에서 비교가 가능한 CONVERT와 FORMAT 의 사용방법과 차이점을 알아보려고 한다.CONVERT 는 날짜가 아니어도 자료형

dogsdream.tistory.com

 

반응형