MySQL에서 시간을 비교할 때는 TIME, DATETIME, TIMESTAMP 타입을 사용하며,
>, <, =, BETWEEN, DATEDIFF(), TIMEDIFF() 같은 연산자를 활용할 수 있어.
>, <, = 사용)시간을 비교할 때는 TIME, DATETIME, TIMESTAMP 데이터 타입을 직접 비교할 수 있어.
SELECT * FROM orders WHERE order_time > '2024-02-01 12:00:00';
✔ order_time이 "2024-02-01 12:00:00" 이후인 데이터 조회.
SELECT * FROM events WHERE event_time < '2024-02-01 18:00:00';
✔ event_time이 "2024-02-01 18:00:00" 이전인 데이터 조회.
BETWEEN)BETWEEN을 사용하면 특정 기간 내의 데이터를 조회할 수 있음.SELECT * FROM logs
WHERE created_at BETWEEN '2024-02-01 08:00:00' AND '2024-02-01 18:00:00';
✔ "2024-02-01 08:00:00" ~ "2024-02-01 18:00:00" 사이에 생성된 로그 조회.
📌 주의: BETWEEN은 양쪽 끝 포함 (>= AND <= 와 동일)
DATEDIFF())DATEDIFF(date1, date2): 두 날짜 간의 일(day) 차이를 반환.SELECT order_id, DATEDIFF(delivery_date, order_date) AS days_to_deliver
FROM orders;
✔ order_date와 delivery_date 간의 일(day) 차이 계산.
TIMEDIFF())TIMEDIFF(time1, time2): 두 시간 간의 차이를 반환.SELECT employee_id, TIMEDIFF(clock_out, clock_in) AS work_duration
FROM attendance;
✔ clock_in(출근 시간)과 clock_out(퇴근 시간) 간의 차이를 계산.
📌 결과 예시: '08:30:00' (8시간 30분)
NOW(), CURTIME())NOW() → 현재 날짜와 시간 반환 (YYYY-MM-DD HH:MM:SS)CURDATE() → 현재 날짜 반환 (YYYY-MM-DD)CURTIME() → 현재 시간 반환 (HH:MM:SS)SELECT * FROM meetings WHERE meeting_time > NOW();
✔ meeting_time이 현재 시간 이후인 데이터 조회.
SELECT * FROM schedules WHERE start_time < CURTIME();
✔ start_time이 현재 시간보다 이전인 데이터 조회.
HOUR(), MINUTE(), SECOND())HOUR(datetime): 시(hour) 추출MINUTE(datetime): 분(minute) 추출SECOND(datetime): 초(second) 추출SELECT * FROM schedules WHERE HOUR(start_time) >= 12;
✔ start_time이 12:00:00 이후인 일정 조회.
SELECT * FROM user_activity
WHERE TIMEDIFF(NOW(), last_login) > '01:00:00';
✔ 마지막 로그인(last_login)이 1시간 이상 지난 사용자 조회.
| 기능 | 함수/연산자 | 설명 |
|---|---|---|
| 특정 시간 이후/이전 비교 | >, <, = | '2024-02-01 12:00:00' 이후 데이터 조회 |
| 특정 시간 범위 조회 | BETWEEN | '2024-02-01 08:00:00' ~ '2024-02-01 18:00:00' 데이터 조회 |
| 날짜 차이 계산 | DATEDIFF(date1, date2) | 두 날짜 간 일(day) 차이 계산 |
| 시간 차이 계산 | TIMEDIFF(time1, time2) | 두 시간 간 차이 계산 (HH:MM:SS) |
| 현재 시간과 비교 | NOW(), CURDATE(), CURTIME() | 현재 날짜/시간과 비교 |
| 특정 시간 조건 검색 | HOUR(), MINUTE(), SECOND() | 특정 시, 분, 초 기준 데이터 조회 |