본문 바로가기
Database/MSSQL

MSSQL 날짜 및 시간 함수(GETDATE, DATEADD 등) 활용법

by yazasus 2025. 5. 26.
728x90

MSSQL 날짜 및 시간 함수 정리 – GETDATE, DATEADD, DATEDIFF 실전 활용법

SQL Server에서는 날짜와 시간을 다룰 때 다양한 내장 함수들을 제공합니다.
이 글에서는 자주 사용하는 날짜 및 시간 함수의 개념과 예제를 정리합니다.

1. GETDATE() – 현재 날짜와 시간 반환

서버의 현재 날짜와 시간을 반환합니다.


SELECT GETDATE(); -- 예: 2025-05-09 10:24:31.333

2. GETUTCDATE() – UTC 기준 시간 반환


SELECT GETUTCDATE(); -- UTC 기준 시간 (국제 표준시)

3. SYSDATETIME(), SYSUTCDATETIME()

더 높은 정밀도를 제공하는 날짜/시간 반환 함수입니다.


SELECT SYSDATETIME();      -- DATETIME2 타입
SELECT SYSUTCDATETIME();   -- UTC 기준, DATETIME2

4. DATEADD(단위, 수치, 기준날짜) – 날짜 계산

기준일자에서 원하는 기간만큼 더하거나 뺍니다.


-- 오늘로부터 7일 후
SELECT DATEADD(DAY, 7, GETDATE());

-- 3개월 전
SELECT DATEADD(MONTH, -3, GETDATE());

5. DATEDIFF(단위, 시작날짜, 끝날짜) – 날짜 차이 계산


-- 오늘과 등록일 사이의 일 수
SELECT DATEDIFF(DAY, '2025-01-01', GETDATE());

단위는 YEAR, MONTH, DAY, HOUR, MINUTE 등 다양하게 지정할 수 있습니다.

6. FORMAT(날짜, 포맷) – 날짜 포맷 변환

날짜를 문자열로 변환하며, 다양한 형식을 지정할 수 있습니다.


SELECT FORMAT(GETDATE(), 'yyyy-MM-dd');        -- 2025-05-09
SELECT FORMAT(GETDATE(), 'yyyy년 MM월 dd일');  -- 2025년 05월 09일

7. EOMONTH(기준날짜 [, +n]) – 말일 구하기


SELECT EOMONTH(GETDATE());       -- 이번 달 말일
SELECT EOMONTH(GETDATE(), 1);    -- 다음 달 말일

8. DATEPART(단위, 날짜) – 특정 요소 추출


SELECT DATEPART(YEAR, GETDATE());   -- 연도
SELECT DATEPART(MONTH, GETDATE());  -- 월
SELECT DATEPART(DAY, GETDATE());    -- 일

9. YEAR(), MONTH(), DAY() – 간단한 추출


SELECT YEAR(GETDATE());   -- 2025
SELECT MONTH(GETDATE());  -- 5
SELECT DAY(GETDATE());    -- 9

실무 팁 💡

  • 날짜 조건 비교 시 CONVERT(DATE, GETDATE()) 또는 CAST(GETDATE() AS DATE)를 사용하면 시간은 무시할 수 있습니다.
  • BETWEEN 시작일 AND 종료일 조건에서 종료일에는 23:59:59를 포함하도록 주의하세요.
  • 말일 구하기는 EOMONTH()로 간단하게 처리할 수 있습니다.
  • 날짜 기반 집계(예: 월별 매출) 시 FORMAT(날짜, 'yyyy-MM')을 GROUP BY에 활용하면 가독성이 좋습니다.

마무리

날짜 및 시간 함수는 로그 관리, 리포트 생성, 예약 기능 구현 등 다양한 분야에서 활용됩니다.
각 함수의 쓰임새를 이해하고 조합해서 사용하는 능력이 SQL 실력을 한 단계 끌어올려줍니다.

728x90