[MySql] mysql timestamp 서버 UTC 타임존

2021. 10. 27. 23:15개발공부/DB

mysql timestamp 서버 타임존

mysql 서버에 설정된 타임존을 기준으로 timestamp가 표출됩니다. DateTime은 존 정보를 담고 있지 않는 것과 대비되기에 시간은 TimeStamp로 설정하는 것이 권장됩니다.

UTC를 코드에 적용시켜주고 있는데, mysql 서버 time.zone 설정을 +00:00으로 해주면 자동으로 UTC 저장이 됩니다. 단, UTC로 미리 변환해 mysql에 저장할 경우 서버 로컬 타임존으로 인식해 UTC 타임 오프셋이 설정될 수 있기 때문에, 한 가지 UTC 변환 방식을 선택해야 될 듯 보입니다.

그리고 session.time_zone과 global.time_zone의 차이는 session은 db 커넥션 off 기준으로 리셋된다는 것입니다.

mysql> SET @@session.time_zone='+00:00';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM             | +00:00              |
+--------------------+---------------------+
1 row in set (0.00 sec)

참고자료

stackoverflow - 서버 타임존