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 변경시, 바뀐다)


해외서버를 사용한다면 문제를 일으킬 수 있다.


timestamp 옵션 중에 

on update CURRENT_TIMESTAMP 이건, UPDATE

옵션은 시간 update 시 시간 까지 변경해 주는 옵션이다..

하지만 지금 구현하고 있는 게시판은 수정시 시간 업데이트를 쓰지 않는다 .


이러한 특성 때문에 클라이언트 시간을 받아서 서버에 저장하는 경우 TIMESTAMP 보다는 DATETIME을 쓰는 것이 좋을 수 있다.


추가로 업데이트시 아래와 같은 방법으로도 구현할 수 있다는데..업데이트시에도 클라이언트에서 now()로 삽입하면 되지 않을까?

여러가지 방법이 있는 듯 하다.

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



cf. 참고로 datetime 이나 date 사용시 now로 저장 뒤에 select를 하면 제멋대로인 포맷으로 출력이 된다. 이럴경우 date_format()함수를 써서 alias로 컬럼을 지정해서 뽑아내는 방법이 유용하다. ex) date_format(time,%Y-%m-%d %h-%i %p 

year month day hour i? pm am 구분..

'데이터베이스 > mysql' 카테고리의 다른 글

mysql connection pool?  (0) 2015.03.27
dmysql 사용시 timestamp와 datetime의 차이  (0) 2015.03.27
블로그 이미지

종환 Revolutionist-JongHwan

github.com/alciakng 항상 겸손하자.

댓글을 달아 주세요