MySQL 표준 시간대
MySQL 시간대에 대한 모든 목록이 있습니까?
유효한 값은 다음과 같습니다.time_zone
MySQL 설정은 호스트 운영 체제에 따라 다르지만 가능한 값 목록을 찾을 수 없습니다.
캘거리 현지 시간을 보여줄 시간이 필요합니다.
기본적으로 (적어도 데비안 기반 설치에서는) MySQL에 로드되는 시간대 데이터가 없습니다.로드되었는지 테스트하려면 다음을 실행해 보십시오.
SELECT CONVERT_TZ('2012-06-07 12:00:00', 'GMT', 'America/New_York');
만약 그것이 a를 반환한다면.DATETIME
(이 경우에는2012-06-07 08:00:00
), 시간대를 로드했습니다.만약 돌아온다면NULL
않습니다그들은 아니에요.로드되지 않은 경우 오프셋(예: 오프셋)을 사용하여 변환하는 것으로 제한됩니다.+10:00
아니면-6:00
).
이 방법은 많은 경우 잘 작동하지만, 일광 절약 시간을 걱정하지 않는 것처럼 명명된 시간대를 사용하는 것이 더 좋을 때도 있습니다.다음 명령을 실행하면 시스템에서 시간대 데이터가 로드됩니다(Unix-only).Windows(윈도우)와 동등한 명령어가 무엇인지 잘 모르겠습니다.
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
MySQL 시간대에 계속 의존해야 하는 경우 시스템 시간대를 업데이트할 때마다 위 명령을 실행해야 합니다.매주 또는 매월 cron 작업에 추가하여 자동으로 작업을 수행할 수도 있습니다.
그런 다음 시간대 목록을 보려면 다음 작업만 수행합니다.
USE mysql;
SELECT * FROM `time_zone_name`;
MySQL에서는 시간대 정보가 약 5MB를 차지합니다.만약 시간대 정보를 언로드하고 싶다면, 다음을 실행하고 MySQL을 재시작하기만 하면 됩니다.
TRUNCATE `time_zone` ;
TRUNCATE `time_zone_leap_second` ;
TRUNCATE `time_zone_name` ;
TRUNCATE `time_zone_transition` ;
TRUNCATE `time_zone_transition_type` ;
이 테이블들은 좋지 않은 일들이 발생하지 않을 것입니다.
편집:
아래 사용자 설명에 따라 시스템을 업데이트할 때 자동으로 시간대가 업데이트되도록 하려면 먼저 root에서 암호를 입력하지 않고 로그인하도록 허용해야 합니다.
MySQL >= 5.6.6
다음 [source]를 실행합니다.
mysql_config_editor set --login-path=client --host=localhost --user=root --password
MySQL < 5.6.6
만들기~/.my.cnf
파일(아직 존재하지 않는 경우) 및 다음을 추가합니다.
[client]
user=root
password=yourMysqlRootPW
실행합니다.chmod 600 ~/.my.cnf
아무도 못 읽게 하려고요
스크립트 업데이트
하루에 한 번 실행할 크론탭에 다음 스크립트를 추가합니다.
#!/bin/bash
# Find if there are any timezone files that have been modified in the last 24
# hours and do not have ".tab" in the name (since these are not timezone files)
if [ `find /usr/share/zoneinfo -mtime -1 | grep -v '\.tab' | wc -l` -gt 0 ]; then
echo "Updating MySQL timezone info"
# Note, suppressing STDERR here because of the .tab files above
# that cause warnings.
mysql_tzinfo_to_sql /usr/share/zoneinfo 2>/dev/null | mysql -u root mysql
echo "Done!\n"
fi
제거합니다.echo
출력을 원하지 않을 경우 라인을 선택합니다.
참고: 이것은 (대부분) 검증되지 않은 것입니다.문제가 있으시면 말씀해주시면 답변을 업데이트하겠습니다.
MySQL 5.7 설명서(Emphasis mine)에서:
타임존 값은 여러 형식으로 제공될 수 있으며, 그 중 대소문자 구분은 없습니다.
'SYSTEM' 값은 시간대가 시스템 시간대와 동일해야 함을 나타냅니다.
값은 '+10:00' 또는 '-6:00'과 같이 UTC로부터의 오프셋을 나타내는 문자열로 지정할 수 있습니다.
값은 'Europe/Helsinki', 'US/Eastern', 'MET' 등의 명명된 시간대로 지정할 수 있습니다.명명된 표준 시간대는 mysql 데이터베이스의 표준 시간대 정보 테이블이 생성되고 채워진 경우에만 사용할 수 있습니다.
MySQL 시작 시 MySQL 시간대 변수의 기본 설정은 SYSTEM입니다.SYSTEM 값은 운영 체제 설정(예: symlink가 참조하는 파일)에서 가져옵니다./etc/localtime
)
MySQL의 기본 시간대 변수는 다음과 같은 명령줄 옵션을 제공하여 시작 시 다른 값으로 초기화할 수 있습니다.
--default-time-zone=timezone
또는 옵션 파일에서 값을 제공하는 경우 다음 구문을 사용하여 변수를 설정해야 합니다.
--default-time-zone='timezone'
MySQL SUPER 사용자인 경우 다음 구문을 사용하여 MYSQL > 프롬프트에서 SYSTEM time_zone 변수를 런타임에 설정할 수 있습니다.
SET GLOBAL time_zone=timezone;
MySQL은 GLOBAL time_zone 환경 변수 값을 기본값으로 하는 개별 SESSION timezone 값도 지원합니다.세션 중에 세션 시간대 값을 변경하려면 다음 구문을 사용합니다.
SET time_zone=timezone;
기존의 MYSQL 시간대 설정 값을 조회하기 위해 다음 SQL을 실행하여 이 값을 얻을 수 있습니다.
SELECT @@global.time_zone, @@session.time_zone;
나는 그냥 구글에서 mysql time_zone configuration value 값을 검색해서 첫번째 결과를 보았습니다.
이 쿼리를 실행하여 MySQL이 지원하는 시간대의 전체 목록을 가져올 수 있습니다.
SELECT Name
FROM mysql.time_zone_name
ORDER BY Name
(이 페이지에서 찾을 수 있습니다: https://www.plumislandmedia.net/mysql/time-zones-mysql/)
MySQL 서버로 가져올 데이터베이스 테이블로 MySQL의 웹 사이트에서 시간대의 전체 목록을 다운로드할 수 있습니다.
캘거리 시간의 경우 UTC 오프셋을 다음과 같이 지정할 수 있습니다.
set time_zone = '-6:00';
MySQL 시작 시 MySQL 시간대 변수의 기본 설정은 SYSTEM입니다.SYSTEM 값은 운영체제의 GLOBAL time_zone 환경변수에서 가져옵니다.
MySQL의 기본 시간대 변수는 다음과 같은 명령줄 옵션을 제공하여 시작 시 다른 값으로 초기화할 수 있습니다.
--default-time-zone=timezone
또는 옵션 파일에서 값을 제공하는 경우 다음 구문을 사용하여 변수를 설정해야 합니다.
--default-time-zone='timezone'
MySQL SUPER 사용자인 경우 다음 구문을 사용하여 MYSQL > 프롬프트에서 SYSTEM time_zone 변수를 런타임에 설정할 수 있습니다.
SET GLOBAL time_zone=timezone;
MySQL은 GLOBAL time_zone 환경 변수 값을 기본값으로 하는 개별 SESSION timezone 값도 지원합니다.세션 중에 세션 시간대 값을 변경하려면 다음 구문을 사용합니다.
SET time_zone=timezone;
기존의 MYSQL 시간대 설정 값을 조회하기 위해 다음 SQL을 실행하여 이 값을 얻을 수 있습니다.
SELECT @@global.time_zone, @@session.time_zone;
언급URL : https://stackoverflow.com/questions/9808160/mysql-time-zones
'programing' 카테고리의 다른 글
Internet Explorer(인터넷 익스플로러) 및 jQuery(jQuery)를 사용한 "사용 권한 거부" (0) | 2023.10.23 |
---|---|
각도 JS 날짜 필터가 작동하지 않습니다. (0) | 2023.10.23 |
팬더는 가장 자주 열의 값을 얻습니다. (0) | 2023.10.23 |
정수 대 IP 주소 - C (0) | 2023.10.23 |
서명되지 않은 MySQL TINYINT (0) | 2023.10.23 |