지금까지 MySQL를 사용하면서 프로젝트를 진행할 때 글 작성시간이나 수정시간을 저장할 때 timestamp를 사용해왔다. CURRENT_TIMESTAMP
와 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
를 사용하여 편리하게 저장하기 위함이었다.
하지만 db를 공부하다가 문득 날짜형 타입에는 datetime, date, timestamp와 같이 여러 개가 있는데 이들의 차이는 무엇일까라는 생각이 들어 포스팅해놓으려고 한다.
여기서 보이는 특징은 datetime와 timestamp의 format이 똑같다는 것과, date와 datetime의 범위가 비슷한 것이 보인다. 따라서 datetime과 timestamp를 더욱 상세히 비교해보면 다음과 같다.
문자형
타입숫자형
타입8byte
4byte
time_zone
에 영향을 받지 않으므로 처음 입력한 값을 유지time_zone
에 영향을 받아 시스템 변수에 입력된 시간대 정보를 바탕으로 UTC로 변환하여 저장