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
'Database > MSSQL' 카테고리의 다른 글
| MSSQL 사용자 정의 함수(UDF) 생성 및 사용 방법 (0) | 2025.05.28 |
|---|---|
| MSSQL 수학 함수(SUM, AVG, ROUND 등) 사용 예제 (0) | 2025.05.27 |
| MSSQL 자주 사용하는 문자열 함수(LEN, SUBSTRING 등) 정리 (0) | 2025.05.25 |
| MSSQL 윈도우 함수(OVER, RANK 등) 사용 예제 (0) | 2025.05.24 |
| MSSQL 서브쿼리(Subquery)와 CTE(Common Table Expression) 활용 (0) | 2025.05.23 |