안녕하세요, 오늘은 DB에 UTC기준으로 날짜데이터를 관리하던중,
각 OS의 타임존에 알맞게 쉽게 컬럼을 뽑아낼 수 있는 방법이 무엇이 있을까?
하던 와중에 CONVERT_TZ 라는 공통 함수를 알게되어 해당 내용에 대해 포스팅합니다.
본 글은 Ubuntu 18.04 기준으로 작성되었음을 미리 알려드립니다.
* Linux/Unix 등 usr/share/zoneinfo 디렉터리 혹은 OS마다 설치된 타임존 정보가 없는경우엔
아래 내용대로 하시면 안됩니다.
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
해당 명령어를 통해 리눅스의 타임존정보를 mysql에 timezone_table을 만들어주도록 합니다.
SELECT '2022-10-21 01:00:00', CONVERT_TZ('2022-10-21 01:00:00', 'GMT', @@GLOBAL.time_zone);
MariaDB 에서 별도로 cnf 옵션을 건드리시지 않았다면, GLOBAL.time_zone 은 SYSTEM
을 바라보게 되어있을 것입니다.
저는 Asia/Seoul 로 되어있으며, 해당 쿼리 작동시 아래와 같이 알맞게 데이터를 반환시켜주는것을 보실 수 있습니다.
감사합니다.
[MariaDB] Top n query - limit 정리 (0) | 2023.10.30 |
---|---|
[Mariadb] Multi Row insert 문 (0) | 2023.07.26 |
[MariaDB] 다중 Cursor 처리 (1) | 2022.10.14 |
[Mariadb] function 리턴 값에 한글이 깨질때 해결방법 (0) | 2022.06.22 |
[MariaDB] 년월일 시분초 날짜 포맷 지정해서 가지고 오기 (0) | 2022.04.11 |