본문 바로가기

DBMS

[SQL] Time Zone 설정하기

진행하고 있는 미니 프로젝트에서 데이터베이스로부터 읽어온 시간이 다르게 표기되었습니다.
데이터베이스에서 제공하는 날짜 타입은 무척 편리하다고만 생각했는데,
해결하지 않으면 의도와 다른 동작을 하는 서비스가 될 가능성이 높습니다.

어떻게 해결하면 좋을지 미리 작성해두어서 추후에 생길 문제를 예방하고자 합니다.


⏳ MariaDB 시간대

MariaDB는 다양한 시간대 설정을 가지고 있습니다.

SELECT @@global.time_zone, @@session.time_zone, @@system_time_zone;
@@global.time_zone @@session.time_zone @@system_time_zone
SYSTEM SYSTEM UTC
  • global.time_zone: 현재 서버에서 사용하는 시간대입니다.
  • session.time_zone: 현재 세션에서 사용하는 시간대로 세션을 종료하면 기본 값으로 돌아갑니다.
  • system_time_zone: 데이터베이스가 설치된 시스템의 기본 시간대입니다.

 

시간대 변경하기

현재 시스템의 기본 시간대인 UTC를 기준으로 동작하고 있습니다.
서버와 세션의 시간대를 변경하는 방법을 알아보겠습니다.

// @@global.time_zone 변경
SET GLOBAL time_zone='ASIA/SEOUL';

// @@session.time_zone 변경
SET time_zone='ASIA/SEOUL';

SELECT @@global.time_zone, @@session.time_zone;
@@global.time_zone @@session.time_zone
ASIA/SEOUL ASIA/SEOUL

설정을 완료하면, 데이터베이스를 재시작하기 전까지 설정이 유지됩니다.


만약에 데이터베이스를 실행할 때마다 설정하기가 번거롭다면,
설정 파일을 찾아서 옵션을 추가해주면 됩니다.

이번 포스트는 여기까지입니다.
틀린 내용이 있다면 지적 부탁드립니다. 감사합니다!