✅ SQL에서 날짜 구하기
SQL의 날짜 함수는 사용하는 데이터베이스 시스템에 따라 다를 수 있습니다. 여기에서는 대표적으로 MySQL과 Oracle, SQL Server 기준으로 소개합니다.
📌 현재 날짜 구하기
DBMS |
현재 날짜 함수 |
---|---|
MySQL |
|
Oracle |
|
SQL Server |
|
— MySQL
SELECT CURDATE();
— Oracle
SELECT SYSDATE FROM DUAL;
— SQL Server
SELECT GETDATE();
📌 날짜 더하고 빼기
DBMS |
사용법 예시 |
---|---|
MySQL |
|
Oracle |
|
SQL Server |
|
🔄 윤년(leap year) 판단 방법
윤년은 **”4로 나누어 떨어지면서 100으로는 나누어떨어지지 않거나, 400으로 나누어떨어지는 해”**입니다.
📌 SQL로 윤년 구하기 (MySQL 예시)
SELECTYEAR,CASEWHEN (YEAR % 4 = 0 AND YEAR % 100 != 0) OR (YEAR % 400 = 0)THEN ‘윤년’ELSE ‘평년’END AS 윤년여부FROM (SELECT 2024 AS YEAR UNION ALLSELECT 2025 UNION ALLSELECT 1900 UNION ALLSELECT 2000) AS YEARS; |
📌 Oracle 예시
⚠️ 주의할 점
-
DBMS별 함수 차이
날짜 계산 함수나 형식은 데이터베이스마다 다르므로, 사용 중인 시스템의 공식 문서를 참고해야 합니다. -
윤년 판단은 직접 연산으로 구현해야 함
대부분의 DB는IS_LEAP_YEAR()
같은 내장 함수가 없기 때문에 수식을 직접 작성해야 합니다. -
날짜 포맷 통일
YYYY-MM-DD
또는YYYY/MM/DD
등 날짜 형식이 일관되지 않으면 오류가 발생할 수 있으므로, 포맷을 항상 명시하거나 변환해 사용하는 것이 좋습니다. -
타임존 고려
특히GETDATE()
,SYSDATE
등은 서버의 시간대를 기준으로 하므로, 타임존이 중요한 시스템에서는CURRENT_TIMESTAMP AT TIME ZONE
등을 활용해야 합니다.