susinlee 님의 블로그
쿼리 엔진 별로 비교해 보는 날짜 시간 함수 본문
1. 날짜/시간 추출
기능 | PostgreSQL | MySQL | 설명 |
연도 추출 | EXTRACT(YEAR FROM date_col) | YEAR(date_col) | 연도를 추출 |
월 추출 | EXTRACT(MONTH FROM date_col) | MONTH(date_col) | 월을 추출 |
일 추출 | EXTRACT(DAY FROM date_col) | DAY(date_col) | 일을 추출 |
시간 추출 | EXTRACT(HOUR FROM date_col) | HOUR(date_col) | 시간을 추출 |
분 추출 | EXTRACT(MINUTE FROM date_col) | MINUTE(date_col) | 분을 추출 |
초 추출 | EXTRACT(SECOND FROM date_col) | SECOND(date_col) | 초를 추출 |
2. 날짜/시간 차이 계산
기능 | PostgreSQL | MySQL | 설명 |
날짜 차이(일 단위) | AGE(date_col1, date_col2) 또는 date_col1 - date_col2 |
DATEDIFF(date_col1, date_col2) | 날짜 간격(일) |
시간 차이(초 단위) | EXTRACT(EPOCH FROM date_col1 - date_col2) | TIMESTAMPDIFF(SECOND, date_col2, date_col1) | 초 단위 차이 |
시간 차이(시간 단위) | EXTRACT(HOUR FROM (date_col1 - date_col2)) | TIMESTAMPDIFF(HOUR, date_col2, date_col1) | 시간 단위 차이 |
날짜 간격 반환 (전체 기간) |
AGE(date_col1, date_col2) | TIMESTAMPDIFF(YEAR, date_col2, date_col1) | 연도 차이 등 계산 |
3. 현재 날짜/시간 가져오기
기능 | PostgreSQL | MySQL | 설명 |
현재 날짜 | CURRENT_DATE | CURDATE() | 현재 날짜 반환 |
현재 시간 | CURRENT_TIME | CURTIME() | 현재 시간 반환 |
현재 날짜 & 시간 | CURRENT_TIMESTAMP 또는 NOW() | NOW() | 현재 날짜 및 시간 반환 |
UTC 날짜 & 시간 | NOW() AT THE ZONE 'UTC' | UTC_TIMESTAMP() | UTC 기준 현재 날짜 & 시간 |
4. 날짜/시간 반환
기능 | PostgreSQL | MySQL | 설명 |
포멧 변환 | TO_CHAR(date_col, 'YYYY-MM-DD') | DATE_FORMAT(date_col, '%Y-%m-%d') | 날짜를 특정 형식으로 변환 |
문자열을 날짜로 변환 | TO_DATE('2024-03-10', 'YYYY-MM-DD') | STR_TO_DATE('2024-03-10', '%Y-%m-%d') | 문자열을 날짜로 변환 |
문자열을 날짜/시간 변환 | TO_TIMESTAMP('2024-03-10 12:30', 'YYYY-MM-DD HH24:MI') | STR_TO_DATE('2024-03-10 12:30', '%Y-%m-%d %H:%i') | 문자열을 타임스탬프로 변환 |
5. 날짜 연산
기능 | PostgreSQL | MySQL | 설명 |
날짜 더하기 | date_col + INTERVAL '1 day' | DATE_ADD(date_col, INTERVAL 1 DAY) | 날짜에 1일 추가 |
날짜 뺴기 | date_col - INTERVAL '1 day' | DATE_SUB(date_col, INTERVAL 1 DAY) | 날짜에서 1일 빼기 |
특정 시간 추가 | date_col + INTERVAL '3 hours' | DATE_ADD(date_col, INTERVAL 3 HOUR) | 특정 시간 추가 |
특정 월/년 추가 | date_col + INTERVAL '2 months' | DATE_ADD(date_col, INTERVAL 2 MONTH) | 특정 월 추가 |
DBMS | 날짜만 저장 | 날짜+시간 저장 (타임존X) | 날짜+시간 저장 (타임존O) |
MySQL | DATE | DATETIME | TIMESTAMP |
PostgreSQL | DATE | TIMESTAMP | TIMESTAMP WITH THE TIME ZONE |
'코드카타 > SQL, Pandas' 카테고리의 다른 글
코호트 분석 - SQL 쿼리로 구현하기 (0) | 2025.03.16 |
---|---|
재귀 쿼리를 활용한 다양한 계층적 데이터 및 시계열 데이터 다루기 (0) | 2025.03.15 |
DISTINCT ON, FIRST_VALUE() (0) | 2025.03.12 |
Supercloud Customer (0) | 2025.03.09 |
Signup Activation Rate (0) | 2025.03.09 |