dev/linux

[MYSQL] TIMESTAMP VS DATETIME

재삐신생 2012. 3. 20. 15:03
반응형

필드 지정시 날짜와 관련이 되면 이전부터 많이들 TIMESTAMP를 사용하였는데요

일단, 둘의 차이점을 알아봅시다

TIMESTAMP만의 특성입니다.
서버의 시간에 의존(UTC에 따라 변형된다는 의미로 해석하면 될 것 같네요)
범위가 '1970-01-01 00:00:01' UTC to '2038-01-09 03:14:07' UTC로 제한됨
on update CURRENT_TIMESTAMP 옵션을 사용할 수 있다.


이러한 차이는 쉽게 말하면
DATETIME는 순수하게 상수로 된 날짜로 인식하지만,
TIMESTAMP는 서버시간에 의한 의존하는 날짜 개념이죠.(서버 time zone 변경시, 바뀝니다)

해외서버를 사용한다면, 문제를 일으킬 수 있는 부분입니다.
국내에서만 사용 할 경우는 별다른 문제가 일어나지 않겠지요.(아마도??)

on update CURRENT_TIMESTAMP 이건, UPDATE시 시간도 업데이트 해주는건데, TIMESTAMP타잎에서만 사용할수 있습니다. 수정된 시간 저장시 매우 유용하게 사용할 수 있는 거죠.

반면에,
클라이언트의 시간을 서버에서 받아서 저장을 하다면, TIMESTAMP보다는 DATETIME을 사용을 권장하게 되겠네요.

등록시간은 DATETIME으로 잡고, 수정시간은 TIMESTAMP on update CURRENT_TIMESTAMP로 사용하면, 편할 거 같다는 생각이 듭니다. 물론 UTC나 timezone에 영향은 고려해야겠지요.
반응형

'dev > linux' 카테고리의 다른 글

[centos] install php 5.6  (0) 2015.06.29
[unbuntu] install oracle java  (0) 2015.02.01
[CentOS 6.5] 서버세팅  (0) 2014.09.17
아파치 서브디렉토리 리다이렉트  (0) 2014.07.18
[MYSQL] 데이터 형(Data Type)과 크기(Size)  (1) 2012.03.20