[MySQL] timestamp vs datetime

smlee·2023년 4월 5일
0

MySQL

목록 보기
6/6
post-thumbnail

지금까지 MySQL를 사용하면서 프로젝트를 진행할 때 글 작성시간이나 수정시간을 저장할 때 timestamp를 사용해왔다. CURRENT_TIMESTAMPCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP를 사용하여 편리하게 저장하기 위함이었다.

하지만 db를 공부하다가 문득 날짜형 타입에는 datetime, date, timestamp와 같이 여러 개가 있는데 이들의 차이는 무엇일까라는 생각이 들어 포스팅해놓으려고 한다.

date vs datetime vs timestamp

여기서 보이는 특징은 datetime와 timestamp의 format이 똑같다는 것과, date와 datetime의 범위가 비슷한 것이 보인다. 따라서 datetime과 timestamp를 더욱 상세히 비교해보면 다음과 같다.

datetime vs timestamp

  1. 타입
    • datetime은 문자형 타입
    • timestamp는 숫자형 타입
  2. 저장되는 공간
    • datetime은 8byte
    • timestamp는 4byte
  3. 자동입력 여부
    • datetime은 수정해야 할 일이 있으면 그때마다 입력
    • timestamp는 CURRENT_TIMESTAMP (ON UPDATE CURRENT_TIMESTAMP)를 이용하여 자동으로 입력 가능
  4. 시간대 정보
    • datetime은 time_zone에 영향을 받지 않으므로 처음 입력한 값을 유지
    • timestamp는 time_zone에 영향을 받아 시스템 변수에 입력된 시간대 정보를 바탕으로 UTC로 변환하여 저장

0개의 댓글