본문 바로가기

DB/MySQL

[MySQL] DATETIME, TIMEZONE

반응형
[MySQL] DATETIME, TIMEZONE 8a577b496897413b9d3b15b06ecf77b8

MySQL의 자료형 중 DATETIMETIMESTAMP는 모두 날짜와 시간 정보를 저장하는데 사용된다. 이 둘의 차이는 TIMEZONE의 반영 여부이다.

테스트를 위해 DATETIME과 TIMESTAMP를 가진 테이블을 만들고 현재 시간을 저장했다.

https://i.imgur.com/AV0Iawu.png

위와 같이 동일한 값이 저장된 것을 확인할 수 있다.

https://i.imgur.com/urYiINv.png

하지만 위처럼 세션의 TIMEZONE을 변경하고 데이터를 조회할 경우 TIMESTAMP 타입 데이터가 변경된다. TIMESTAMP는 세션에 설정된 TIMEZONE을 반영해 시간을 표시해준다.

만일 글로벌 서비스를 제공해야할 경우 한국에 있는 사용자에게는 한국 시간을, 미국에 있는 사용자에게는 미국 시간을 표시해줘야할 것이다. 이 떄 시간 데이터를 TIMESTAMP로 저장해준다면 사용자에 맞는 TIMEZONE 변경을 통해 올바른 시간을 표시해줄 수 있다. 아마도 이를 위해 DB 커넥션을 생성할 때 TIMEZONE을 설정하는 파라미터가 있는 것 같다.

반응형