SQL Advanced: 날짜/시간 함수

하하호호훈이·2025년 5월 30일

SQL(MySQL) MUST KNOW

목록 보기
12/23
post-thumbnail

이번 포스팅에서는 SQL에서 날짜와 시간을 다룰 수 있는 함수들을 소개합니다. 데이터가 언제 발생했는지 추적하거나, 날짜 간의 차이를 계산하거나, 미래 일정을 예측하는 등 다양한 실무 상황에서 자주 쓰입니다.

다루는 함수 목록:

  • NOW()
  • CURDATE() / CURTIME()
  • DATE_ADD() / DATE_SUB()

💡 모든 예시는 지난 포스팅과 동일하게 company_db라는 예시 데이터베이스 안에 employeesprojects 테이블을 기반으로 작성됩니다.


1. NOW() — 현재 날짜와 시간 반환

✔️ 사용 목적

  • 시스템이 쿼리를 실행하는 현재 시각 (날짜 + 시간) 을 가져옵니다.
  • 로그 기록, 트랜잭션 시간 추적 등에 자주 사용됩니다.

✔️ 예제

SELECT NOW() AS current_datetime;

예시 결과:

current_datetime
2025-05-30 14:32:15

2. CURDATE() / CURTIME() — 현재 날짜 또는 시간만 반환

✔️ 사용 목적

  • CURDATE(): 오늘 날짜만 필요할 때 (YYYY-MM-DD)
  • CURTIME(): 현재 시간만 필요할 때 (HH\:MM\:SS)

✔️ 예제

SELECT CURDATE() AS today,
       CURTIME() AS current_time;

예시 결과:

todaycurrent_time
2025-05-3014:32:15

3. DATE_ADD(date, INTERVAL n unit) — 날짜 더하기

✔️ 사용 목적

  • 기준 날짜에 일정 기간(일, 주, 월 등)을 더하여 마감일이나 예상 완료일 등을 계산할 수 있습니다.

✔️ 구문 설명

  • date: 기준이 되는 날짜 (DATE 타입)
  • n: 더하고자 하는 수치 (예: 5)
  • unit: 기간 단위 (DAY, MONTH, YEAR, HOUR, ...)

✔️ 예제

SELECT start_date,
       DATE_ADD(start_date, INTERVAL 7 DAY) AS expected_due
FROM projects;

예시 결과:

start_dateexpected_due
2023-01-012023-01-08
2023-03-152023-03-22
2024-01-012024-01-08
2022-06-012022-06-08

4. DATE_SUB(date, INTERVAL n unit) — 날짜 빼기

✔️ 사용 목적

  • 특정 날짜에서 일정 기간을 뺀 이전 날짜를 구합니다.
  • 유효기간 계산, 리마인더 설정 등에서 유용합니다.

✔️ 예제

SELECT hire_date,
       DATE_SUB(hire_date, INTERVAL 14 DAY) AS onboarding_start
FROM employees;

예시 결과:

hire_dateonboarding_start
2020-05-202020-05-06
2021-03-152021-03-01
2019-11-052019-10-22
2022-01-102021-12-27

✅ 정리 요약: 날짜/시간 함수 비교

함수기능 요약활용 예시
NOW()현재 날짜 + 시간 반환트랜잭션 기록, 로그 타임스탬프
CURDATE()현재 날짜만 반환오늘 날짜 필터링, 보고서 날짜
CURTIME()현재 시간만 반환시간대 기준 작업, 예약 비교
DATE_ADD()날짜에 기간 더하기마감일 계산, 유예기간 설정
DATE_SUB()날짜에서 기간 빼기유효기간 판단, 리마인더 생성

다음 파트에서는 숫자 함수를 정리해보겠습니다! 예산, 급여, 수량 등 수치형 데이터를 다룰 때 사용하는 함수들을 다뤄봅시다. 그럼 🙌

profile
AI, Data Science/Analysis 리뷰용가리지용 😆

0개의 댓글