진행하고 있는 미니 프로젝트에서 데이터베이스로부터 읽어온 시간이 다르게 표기되었습니다.
데이터베이스에서 제공하는 날짜 타입은 무척 편리하다고만 생각했는데,
해결하지 않으면 의도와 다른 동작을 하는 서비스가 될 가능성이 높습니다.
어떻게 해결하면 좋을지 미리 작성해두어서 추후에 생길 문제를 예방하고자 합니다.
⏳ 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 |
설정을 완료하면, 데이터베이스를 재시작하기 전까지 설정이 유지됩니다.
만약에 데이터베이스를 실행할 때마다 설정하기가 번거롭다면,
설정 파일을 찾아서 옵션을 추가해주면 됩니다.
이번 포스트는 여기까지입니다.
틀린 내용이 있다면 지적 부탁드립니다. 감사합니다!
'DBMS' 카테고리의 다른 글
[MySQL] SQL_CALC_FOUND_ROWS와 FOUND_ROWS() (0) | 2024.10.17 |
---|---|
[SQL] IN 연산자 알아보기 (3) | 2024.10.10 |
[SQL] JOIN으로 테이블을 합쳐보자 (0) | 2024.09.20 |
[SQL] 데이터를 내 마음대로, DML (1) | 2024.09.12 |
[RDBMS] 데이터베이스 정규화 (0) | 2024.09.11 |