SQL

[SQL]날짜 함수 ORALCE, MYSQL, MS-SQL, 정리

라텐느 2025. 4. 12. 16:53

기능

ORACLE

MySQL

MS-SQL

현재 날짜/시간 SYSDATE (날짜+시간),
CURRENT_DATE (날짜) ,
SYSTIMESTAMP (날짜+시간+밀리초+타임존),
CURRENT_TIMESTAMP (세션 타임존 기준)
NOW() (쿼리 시작 시점),
SYSDATE() (함수 호출 시점),
CURDATE() (날짜),
CURTIME() (시간),
CURRENT_TIMESTAMP() (NOW()와 동일)
GETDATE() (서버 날짜+시간),
CURRENT_TIMESTAMP (GETDATE()와 동일),
SYSDATETIME() (더 높은 정밀도),
GETUTCDATE() (UTC 기준),
SYSDATETIME() (더 높은 정밀도),
SYSUTCDATETIME() (UTC, 더 높은 정밀도),
SYSDATETIMEOFFSET() (타임존 오프셋 포함)
날짜 형식 지정
(날짜 -> 문자)
TO_CHAR(date, 'YYYY-MM-DD')

DATE_FORMAT(date, '%Y-%m-%d %H:%i:%s') FORMAT(date, 'yyyy-MM-dd HH:mm:ss')
CONVERT(VARCHAR, date, style)
문자열 → 날짜 변환 TO_DATE('2025-04-12', 'YYYY-MM-DD')
TO_TIMESTAMP(date, 'YYYY-MM-DD )
STR_TO_DATE('2025-04-12 16:23:10', '%Y-%m-%d %H:%i:%s') CONVERT(DATETIME, '2025-04-12' , style)
CAST('2025-04-12' AS DATETIME)
날짜 더하기 date + 7
ADD_MONTHS(date, 1)
DATE_ADD(date, INTERVAL 7 DAY) DATEADD(DAY, 7, date)
날짜 차이 date1 - date2 (일 수)
MONTHS_BETWEEN(date1, date2)
DATEDIFF(date1, date2) (일 수) DATEDIFF(DAY, date2, date1)
날짜에서 특정 값 추출 EXTRACT(YEAR FROM date),
TO_CHAR(date, 'YYYY'),
TO_CHAR(date, 'MM')
EXTRACT(part FROM date)
YEAR(date)
MONTH(date) 
DAY(date)
HOUR(time)
MINUTE(time)
SECOND(time)
DATEPART(part, date)
YEAR(date)
MONTH(date)
DAY(date)
시작일로부터 개월 수 더함 ADD_MONTHS(date, n) DATE_ADD(date, INTERVAL n MONTH) DATEADD(MONTH, n, date)
두 날짜 간 개월 수 차이 MONTHS_BETWEEN(date1, date2) 계산 직접 수행 (YEAR, MONTH 추출 조합) 직접 계산 필요 (DATEDIFF(MONTH, d2, d1))
시간 차이(시/분/초) date1 - date2 (결과는 일수 단위) TIMESTAMPDIFF(SECOND, d2, d1) 등 DATEDIFF(SECOND, d2, d1) 등
요일 구하기 TO_CHAR(date, 'D') (1=일요일) DAYOFWEEK(date) (1=일요일) DATEPART(WEEKDAY, date) (기준 설정에 따라 다름)