MySQL 시간대의 전체 목록을 어떻게 얻을 수 있습니까?

Linda Hamilton
풀어 주다: 2024-11-03 00:10:02
원래의
946명이 탐색했습니다.

How can I get a comprehensive list of MySQL time zones?

MySQL 시간대: 종합 가이드

질문: 사용 가능한 MySQL 시간대의 전체 목록이 있습니까?

정답: 네, 하지만 호스트 운영 체제에 따라 다릅니다. 목록에 액세스하려면 시간대 데이터를 MySQL에 로드해야 합니다.

시간대 데이터 로드 방법:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
로그인 후 복사

참고: 이 명령은 Unix 시스템용입니다. Windows에 해당하는 것은 알려져 있지 않습니다.

시간대 목록:

데이터가 로드되면 시간대 목록을 볼 수 있습니다.

USE mysql;
SELECT * FROM `time_zone_name`;
로그인 후 복사

캘거리 현지 시간:

캘거리 현지 시간으로 시간을 표시하려면 다음 구문을 사용하세요.

SELECT CONVERT_TZ(CURRENT_TIMESTAMP, 'GMT', 'America/Edmonton');
로그인 후 복사

추가 참고:

  • MySQL에서 시간대 데이터는 약 5MB를 차지합니다.
  • 데이터를 언로드하려면 다음 명령을 실행하고 MySQL을 다시 시작하세요.
TRUNCATE `time_zone` ;
TRUNCATE `time_zone_leap_second` ;
TRUNCATE `time_zone_name` ;
TRUNCATE `time_zone_transition` ;
TRUNCATE `time_zone_transition_type` ;
로그인 후 복사
  • 주의: 문제가 발생할 수 있으므로 이 테이블을 삭제하지 마십시오.

자동 시간대 업데이트:

시스템 시간대가 변경되면 MySQL 시간대를 업데이트하도록 자동화된 시스템을 설정할 수 있습니다.

MySQL의 경우 >= 5.6.6:

mysql_config_editor set --login-path=client --host=localhost --user=root --password
로그인 후 복사

MySQL < 5.6.6:

다음 내용으로 ~/.my.cnf 파일을 생성합니다.

[client]
user=root
password=yourMysqlRootPW
로그인 후 복사

그런 다음 매일 실행하려면 crontab에 다음 스크립트를 추가합니다.

if [ `find /usr/share/zoneinfo -mtime -1 | grep -v '\.tab' | wc -l` -gt 0 ]; then
    echo "Updating MySQL timezone info"
    mysql_tzinfo_to_sql /usr/share/zoneinfo 2>/dev/null | mysql -u root mysql
    echo "Done!\n"
fi

이것은 대부분 테스트되지 않았다는 점을 기억하세요. 문제가 발생하면 신고하여 그에 따라 답변을 업데이트하세요.

위 내용은 MySQL 시간대의 전체 목록을 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿