MySQL에서 컬럼 데이터타입 중 datetime과 timestamp의 차이
각각의 특징과 어떤 상황에서 어느 것을 선택하는 것이 좋을까요?
1. datetime 데이터 타입
• 특징:
• YYYY-MM-DD HH:MM:SS 형식으로 날짜와 시간을 저장합니다.
• 특정한 시점의 날짜와 시간을 명시적으로 저장할 수 있습니다.
• 범위는 1000-01-01 00:00:00에서 9999-12-31 23:59:59까지입니다.
• 장점:
• 사용자가 직접 지정한 시간을 정확하게 저장할 수 있습니다.
• 날짜와 시간이 변하지 않고 고정된 경우에 유용합니다.
• 사용 예시:
• 사용자가 이벤트에 참여한 시간 등 정확한 시간을 기록해야 할 경우.
• 정확한 시간대가 중요한 경우, 예를 들어 특정 시간대에 데이터를 분석하거나 조회할 때 유용합니다.
2. timestamp 데이터 타입
• 특징:
• 일반적으로 시스템이나 데이터베이스의 상태 변화를 기록할 때 사용됩니다.
• 기본적으로 YYYY-MM-DD HH:MM:SS 형식으로 저장되지만, 시간대 변환에 따라 변할 수 있습니다.
• 범위는 1970-01-01 00:00:01에서 2038-01-19 03:14:07까지이며, 이는 Unix 시간 스탬프의 범위에 따릅니다.
• 장점:
• 시스템의 상태 변화를 기록할 때 유용합니다. 예를 들어, 레코드가 마지막으로 업데이트된 시간을 기록할 때 사용될 수 있습니다.
• 타임존 설정에 따라 자동으로 조정되어 편리합니다.
• 사용 예시:
• 특정 이벤트가 발생한 시간을 기록하거나, 레코드가 최근에 변경된 시간을 추적할 때 유용합니다.
• 데이터가 저장된 시점을 기록하고, 이 시점에 대한 상대적 시간차를 계산해야 할 경우에 사용될 수 있습니다.
선택 기준
• 정확한 시간 저장이 필요한 경우에는 datetime을 사용합니다.
• 상태 변화나 이벤트 발생 시간을 기록하고 추적해야 할 경우에는 timestamp를 사용합니다.
• 시스템 설정 및 데이터 관리 방식에 따라 선택할 수 있습니다. 예를 들어, 시스템이 다양한 타임존을 지원하고 데이터를 저장할 때 timestamp가 유용할 수 있습니다.
결론
일반적으로 많은 시스템에서는 timestamp를 사용하여 상태 변화나 이벤트 발생 시간을 기록하고,
사용자가 직접 입력한 정확한 시간을 저장할 때에는 datetime을 사용하는 경향이 있습니다.
'Database > MySQL, MariaDB' 카테고리의 다른 글
[MySQL, MariaDB] MySQL과 MariaDB의 차이, 공통점 (0) | 2024.06.28 |
---|---|
[MySQL] MySQL 컨벤션 (최신, 많이 사용하는 Convention), 예시 (0) | 2024.06.28 |