데이터베이스 작성 시, 시간 관련해서 대표적으로 사용되는 2가지 데이터타입이 있다.
바로 datetime과 timestamp.
datetime은 새로 추가하는 날짜와 시간을 그대로 반환하는데,
timestamp는 timezone을 반영한 날짜와 시간을 반환한다.
즉 timestamp는 무조건 UTC(협정세계시)가 적용되며 timezone 설정에 따라
반환값이 영향 받는 것이다.
그래서 만약 timezone을 Asia/Seoul로 한다면, +9시간이 적용된 날짜/시간이 반환된다.
공식 문서에 따르면, 각 데이터타입의 supported range는 아래와 같다.
About UTC...
인류는 태양을 기준으로 시간을 계산해왔는데,
평균태양시를 최초로 측정한 곳은 영국의 그리니치 천문대다. 여기서 탄생한 것이 GMT.
이 때 평균태양시는 지구의 공전을 고려해 계산한 것.
그런데 지구의 자전 또한 속도가 불규칙한 것이 밝혀지면서, 좀 더 정교한 시간 작업이 필요하게 되었다.
그래서 태양시계 대신 원자시계를 기준으로 삼게 되었으며 이것이 UTC다.
(원자시계는 훨씬 더 정밀한 계산을 하기 때문 - 지구의 자전 속도를 반영)