datetime이랑 timestamp의 차이
. timestamp
• 범위: 1970-01-01 00:00:01 UTC에서 2038-01-19 03:14:07 UTC까지의 범위를 가집니다.
• 크기: 4바이트.
• 기본값: CURRENT_TIMESTAMP를 기본값으로 사용할 수 있으며, 자동으로 현재 시간으로 설정할 수 있습니다.
• 자동 업데이트: ON UPDATE CURRENT_TIMESTAMP 속성을 사용하여 행이 수정될 때마다 자동으로 업데이트되도록 할 수 있습니다.
• 시간대: timestamp는 UTC 시간으로 저장되고, 세션의 시간대에 따라 변환됩니다. 즉, 동일한 값이 서로 다른 시간대에서 다르게 보일 수 있습니다.
2. datetime
• 범위: 1000-01-01 00:00:00에서 9999-12-31 23:59:59까지의 범위를 가집니다.
• 크기: 8바이트.
• 기본값: datetime은 기본값을 CURRENT_TIMESTAMP로 설정할 수 없지만, MySQL 5.6 이상에서는 DEFAULT CURRENT_TIMESTAMP를 사용할 수 있습니다.
• 자동 업데이트: ON UPDATE CURRENT_TIMESTAMP 속성을 사용할 수 없습니다.
• 시간대: datetime은 저장된 그대로의 값을 유지하며, 시간대 변환을 하지 않습니다. 이는 시간대가 변경되어도 값이 변경되지 않음을 의미합니다.
datetime은
넓은 범위 지원: 공연 예약 시스템은 과거의 공연 기록과 미래의 공연 예약을 모두 관리해야 합니다. datetime은 1000-01-01부터 9999-12-31까지의 넓은 범위를 지원하므로, 과거와 미래의 모든 공연 데이터를 다룰 수 있습니다.
2. 시간대 관리 필요 없음: 공연 예약 시스템에서 시간대 변환이 필요하지 않은 경우가 많습니다. 공연의 시작 시간과 종료 시간은 보통 고정된 장소의 현지 시간을 기준으로 하기 때문에 시간대 변환이 불필요합니다. datetime은 저장된 그대로의 값을 유지하므로 시간대 문제가 발생하지 않습니다.
3. 일관성: datetime은 특정 시간대에 영향을 받지 않고 일관된 시간값을 유지하므로, 사용자가 다양한 시간대를 사용하더라도 혼란이 적습니다.