개발로그필름

[SQL] DATETIME과 TIMESTAMP의 차이점: 언제, 어떻게 사용할까? 본문

IT/SQL

[SQL] DATETIME과 TIMESTAMP의 차이점: 언제, 어떻게 사용할까?

yuullog 2025. 3. 14. 09:21
728x90
반응형
SMALL

 

 

반응형

 

 

시간 데이터를 다룰 때 흔히 접하는 개념 중 하나가 DATETIME TIMESTAMP이다

두 용어는 비슷해 보이지만, 실제로는 다른 개념이며 사용 목적도 다르다

 

 

 

1. DATETIME과 TIMESTAMP란?

1.1 DATETIME이란?

사람이 이해하기 쉬운 날짜 및 시간을 포함하는 데이터 타입

일반적으로 년-월-일 시:분:초 형식으로 표현되며, 특정 시점을 직관적으로 나타낼 수 있다

  • 예시: 2025-03-13 15:30:00
  • Python에서 DATETIME을 다룰 때는 datetime 모듈을 사용한다
from datetime import datetime

dt = datetime(2025, 3, 13, 15, 30, 0)
print(dt)  # 2025-03-13 15:30:00

 

 

 

 

1.2 TIMESTAMP란?

1970년 1월 1일 00:00:00 UTC(Unix Epoch Time)부터의 경과 시간을 초 단위로 나타낸 값

컴퓨터 시스템에서 시간 데이터를 저장하고 처리할 때 주로 사용

  • 예시: 1710324600 (이는 2025-03-13 15:30:00 UTC에 해당하는 값)
  • Python에서 TIMESTAMP를 다루려면 datetime.timestamp() 메서드를 활용
import time

dt = datetime(2025, 3, 13, 15, 30, 0)
ts = dt.timestamp()
print(ts)  # 1710324600.0

 

 

 

SMALL

 

 

2. DATETIME과 TIMESTAMP의 차이점

구분 DATETIME TIMESTAMP
데이터 형태 년-월-일 시:분:초 (사람이 이해하기 쉬운 형식) 1970년 1월 1일 UTC부터의 초 (숫자 값)
표현 방식 날짜와 시간을 직관적으로 표현 단순한 숫자로 저장 및 계산
주요 사용처 로그 기록, 사람이 읽는 데이터 저장 데이터베이스, 타임스탬프 기반 연산
시간대(timezone) 타임존이 포함될 수도 있음 기본적으로 UTC 기준

 

 

 

 

3. 언제 DATETIME과 TIMESTAMP를 사용할까?

3.1 DATETIME이 적절한 경우

  • 사람이 직접 읽고 이해해야 하는 경우 (로그, UI 표시 등)
  • 날짜 연산을 수행할 때 (datetime.timedelta 활용 가능)
  • 특정 포맷으로 변환하여 저장할 때
# 현재 시간 가져오기
dt_now = datetime.now()
print(dt_now.strftime("%Y-%m-%d %H:%M:%S"))  # 2025-03-13 15:30:00

 

 

 

3.2 timestamp가 적절한 경우

  • 데이터베이스에 저장할 때 (숫자로 저장하면 검색 및 정렬 속도 향상)
  • 시간 계산이 필요한 경우 (초 단위 차이 계산)
  • 다른 시스템 간 시간을 주고받을 때 (UTC 기준으로 통일 가능)
# 현재 시간을 timestamp로 변환
current_ts = time.time()
print(current_ts)  # 1710324600.0

 

 

 

 

4. DATETIME과 TIMESTAMP 상호 변환하기

때로는 datetime timestamp를 변환해야 할 때가 있다

Python에서는 이를 간단히 변환할 수 있다

 

4.1 DATETIME → TIMESTAMP 변환

ts = dt.timestamp()
print(ts)  # 1710324600.0

 

 

4.2 TIMESTAMP → DATETIME 변환

dt_from_ts = datetime.fromtimestamp(ts)
print(dt_from_ts)  # 2025-03-13 15:30:00

 

 

 

5. 정리

  • DATETIME은 사람이 읽기 쉬운 날짜 및 시간 형식
  • TIMESTAMP는 1970년 1월 1일 기준 초 단위 숫자 값
  • DATETIME은 로그 기록, UI 표시 등에 유용
  • TIMESTAMP는 데이터 저장, 연산 등에 최적화
  • Python에서는 datetime.timestamp() datetime.fromtimestamp()를 활용하여 변환 가능

시간 데이터를 다룰 때 목적에 따라 DATETIME TIMESTAMP를 적절히 선택하는 것이 중요하다

이를 잘 활용하면 시간 데이터를 더욱 효율적으로 처리할 수 있다

반응형
LIST

'IT > SQL' 카테고리의 다른 글

[SQL] ON DELETE RESTRICT  (0) 2025.03.12
[SQL] VIEW  (0) 2025.03.11
[SQL] SELECT문 실행 순서  (0) 2025.03.11
[SQL] SUBSTRING() 함수  (0) 2025.03.10
[SQL] 년, 월, 일 컬럼 값(date)만 있을 때 요일을 어떻게 조회하지?  (0) 2025.03.05