TIMESTAMP만의 특성입니다.
범위가 '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 |
댓글을 달아 주세요