MySQL 날짜 데이터 타입 개요
MySQL은 다양한 개발 환경과 요구 사항에 맞출 수 있도록 총 5가지의 날짜 관련 데이터 타입을 지원합니다. 각 타입마다 저장할 수 있는 값의 범위와 기본 표시 형식이 다르므로, 프로젝트에 적합한 타입을 선택하는 것이 중요합니다.
1. DATE
날짜만 저장하는 타입으로, 저장 가능한 범위는 1000-01-01부터 9999-12-31까지입니다. 기본 형식은 YYYY-MM-DD이며, 예를 들어 1984년 1월 17일은 1984-01-17로 저장됩니다.
2. DATETIME
날짜와 시간을 함께 저장하는 타입입니다. 저장 범위는 1000-01-01 00:00:00부터 9999-12-31 23:59:59까지로 매우 넓습니다. 기본 형식은 YYYY-MM-DD HH:MM:SS이며, 예를 들어 1984년 1월 17일 오후 2시 20분은 1984-01-17 14:20:00으로 저장됩니다.
3. TIMESTAMP
DATETIME과 마찬가지로 날짜와 시간을 함께 저장하지만, 저장 가능한 범위는 '1970-01-01 00:00:01'부터 '2038-01-19 08:44:07'까지로 제한됩니다. 이는 유닉스 타임스탬프 기준(2038년 문제)에 따른 것으로, 시스템 시간대를 반영해 자동 변환된다는 특징도 있습니다.
4. TIME
시간만 저장하는 타입으로, HH:MM:SS 형식으로 값을 저장합니다. 경과 시간이나 스케줄 정보를 다룰 때 유용하게 사용됩니다.
5. YEAR(M)
연도를 2자리 또는 4자리 형식으로 저장하는 타입입니다.
- 길이를 2로 지정하면(YEAR(2)) 1970년부터 2069년까지(70~69) 표현할 수 있습니다.
- 길이를 4로 지정하면 1901년부터 2155년까지 표현할 수 있습니다.
- 기본값은 4자리입니다.
참고로 YEAR(2)는 MySQL 5.6.6부터 폐기(deprecated)되었으며, MySQL 8.0에서는 완전히 제거되었으므로 새 프로젝트에서는 4자리 YEAR 사용을 권장합니다.
마무리
단순히 날짜만 필요하다면 DATE, 날짜와 시간이 모두 필요하다면 DATETIME 또는 TIMESTAMP, 시간만 필요하다면 TIME, 연도만 필요하다면 YEAR 타입을 선택하면 됩니다. 특히 TIMESTAMP는 저장 범위가 2038년까지로 제한되어 있다는 점을 고려하여 용도에 맞게 신중히 선택하는 것이 좋습니다.