[MySQL][Admin] timestamp 컬럼 속성과 timzone과의 관계

Timestamp 와 timezone과의 관계

timestamp 컬럼 속성을 가지는 데이터를 마이그레이션 할때 유의할 사항이 있습니다.

그것은 timezone의 속성이 굉장히 중요하다는 것입니다.

예를 들어 기존 MySQL 서버의  time zone이 KST(+9시간) 일때 만약 UTC tim zone(+0)시간을 가지는 MySQL 서버에 데이터를 입력할 경우 UTC의 시간으로 바뀝니다. 즉 현재 MySQL서버의 시간에 따라간다는 의미입니다.

테스트를 통해 알아보도록 하겠습니다.

 

 테스트

다음과 같은 데이터가 있다고 가정합니다.

mysql> select @@time_zone;
+-------------+
| @@time_zone |
+-------------+
| +09:00      |
+-------------+
1 row in set (0.01 sec)

mysql> desc test_table;
+------------+---------------------+------+-----+-------------------+-----------------------------+
| Field      | Type                | Null | Key | Default           | Extra                       |
+------------+---------------------+------+-----+-------------------+-----------------------------+
| c1         | timestamp           | YES  |     | CURRENT_TIMESTAMP |                             |
+------------+---------------------+------+-----+-------------------+-----------------------------+

mysql> select c1 from test_table order by c1 desc;
+---------------------+
| c1                  |
+---------------------+
| 2022-06-28 16:33:42 |
| 2022-06-28 16:33:29 |
| 2022-06-28 16:33:28 |
| 2022-06-28 16:31:59 |
| 2022-06-28 16:31:59 |
| 2022-06-28 16:31:59 |
| 2022-06-28 16:31:19 |
| 2022-06-28 16:31:12 |
| 2022-06-28 16:30:49 |
| 2022-06-28 16:30:49 |
+---------------------+

 

위의 데이터를 UTC 시간을 가지는 서버에 마이그레이션 한다고 가정합니다.

mysql> select @@time_zone;
+-------------+
| @@time_zone |
+-------------+
| +00:00      |
+-------------+
1 row in set (0.01 sec)

shell> mysql -uroot -p'암호' < ./dummy_timestamp_data.sql

mysql> select c1 from test_table order by c1 desc;
+---------------------+
| updated_at          |
+---------------------+
| 2022-06-28 07:33:42 |
| 2022-06-28 07:33:29 |
| 2022-06-28 07:33:28 |
| 2022-06-28 07:31:59 |
| 2022-06-28 07:31:59 |
| 2022-06-28 07:31:59 |
| 2022-06-28 07:31:19 |
| 2022-06-28 07:31:12 |
| 2022-06-28 07:30:49 |
| 2022-06-28 07:30:49 |
+---------------------+

보시는바와 같이 딱 9시간 전으로 되돌아 가는것을 확인해볼 수 있습니다.

이렇듯 timestamp 속성을 가지는 서버로 마이그레이션을 할때는 반드시 서버의 시간도 정확히 맞추는 것이 중요하다는것을 확인해 볼 수 있습니다.

 

 

도움이 되셨다면 광고클릭 한번 부탁드립니다.

Designed by JB FACTORY