아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
카카오 favicon카카오

MySQL DATETIME, TIMESTAMP, 제대로 알고 쓰자!

by DD
2025-10-17
9개월 전
조회수 4

DATETIME과 TIMESTAMP 데이터 타입의 저장 방식과 저장 범위를 비교 분석

explicit_defaults_for_timestamp 시스템 변수와 Y2K38 문제 등 기능적 특징을 설명

타임존 정보 및 저장 범위를 고려하여 데이터 타입 선택 가이드 제시

DATETIME과 TIMESTAMP 저장 방식 비교

DATETIME은 5 Bytes 정수부와 소수부로 시간을 저장하며, TIMESTAMP는 MYSQL_TIME 구조체를 활용한다. 구체적으로 DATETIME은 Fraction Seconds를 위해 소수부 저장 방식을 사용하며, TIMESTAMP는 UTC 변환을 거쳐 데이터를 저장한다. 따라서 타임존 처리에 차이가 있다.

explicit_defaults_for_timestamp 변수 분석

이 변수는 TIMESTAMP 타입의 기본값 설정에 영향을 미친다. explicit_defaults_for_timestamp=OFF인 경우, 기본값이 없으면 NOT NULL로 설정된다. 반면, ON인 경우 NULL로 설정된다. 따라서, 이 변수는 데이터 무결성과 호환성에 중요한 영향을 미친다.

Y2K38 문제와 TIMESTAMP의 한계

MySQL의 TIMESTAMP는 Y2K38 문제에 취약하며, 2038년 이후 시간 오작동 가능성이 있다. 구체적으로, 32비트 정수형으로 시간을 저장하기 때문이다. 따라서, unix_timestamp() 함수 사용 시 주의해야 하며, 데이터 저장 범위를 고려해야 한다.

MySQL DATETIME, TIMESTAMP 데이터 타입에 대한 분석
중급
아키텍처
MySQL
SQL
Data
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

SQL 기초부터 실전까지 마스터!

더 프라임아젠 로고

코드 리뷰의 맹점을 파헤치다!

데브투 로고

무신사, 10초 타임아웃을 20ms로 줄인 비결 공개!

무신사 로고

SQL 스키마를 로컬에서 ER 다이어그램으로 변환하는 무료 도구

해커뉴스 로고

20년 묵은 MySQL 버그, 드디어 해결!

레딧 로고

MySQL, 이제 안녕! ClickHouse로 쿼리 속도 245배 UP

NHN클라우드 로고
카카오 favicon카카오
중급
아키텍처
MySQL
SQL
Data

관련 추천 글

SQL 기초부터 실전까지 마스터!

더 프라임아젠 로고

코드 리뷰의 맹점을 파헤치다!

데브투 로고

무신사, 10초 타임아웃을 20ms로 줄인 비결 공개!

무신사 로고