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) (기준 설정에 따라 다름) |