나는 이것이 유용 할 것이라고 생각했다.
MySQL에서 시간대를 설정할 수있는 위치는 세 곳입니다.
[mysqld] 섹션의 "my.cnf"파일에서
default-time-zone='+00:00'
@@ global.time_zone 변수
어떤 값으로 설정되어 있는지 확인하려면 :
SELECT @@global.time_zone;
값을 설정하려면 다음 중 하나를 사용하십시오.
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';
'유럽 / 헬싱키'와 같은 명명 된 시간대를 사용하면 시간대 표를 올바르게 채워야합니다.
+02:00
오프셋 임을 명심하십시오 . Europe/Berlin
시간대 (두 오프셋이 있음)이고CEST
특정 오프셋에 해당하는 클럭 시간입니다.
@@ session.time_zone 변수
SELECT @@session.time_zone;
설정하려면 다음 중 하나를 사용하십시오.
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";
둘 다 SYSTEM을 리턴 할 수 있습니다. 이는 my.cnf에 설정된 시간대를 사용함을 의미합니다.
시간대 이름이 작동하려면 시간대 정보 테이블을 채우도록 설정해야합니다 ( http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html) . 또한 이 답변 에서 해당 테이블을 채우는 방법에 대해서도 언급합니다 .
현재 시간대 오프셋을 다음과 같이 얻으려면 TIME
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
시간대가 +2 : 00이면 02:00:00을 반환합니다.
현재 UNIX 타임 스탬프를 얻으려면
SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());
타임 스탬프 열을 UNIX 타임 스탬프로 가져 오려면
SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`
UTC 날짜 / 시간 열을 UNIX 타임 스탬프로 가져 오려면
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
참고 : 시간대 를 변경해도 저장된 날짜 시간 또는 타임 스탬프는 변경되지 않습니다. 않지만 기존 타임 스탬프 열은 내부적으로 UTC 타임 스탬프로 저장되고 현재 MySQL 시간대에 외부로 표시되므로 기존 타임 스탬프 열에 대해 다른 날짜 시간을 표시합니다.
여기에 치트 시트를 만들었습니다 : MySQL의 시간대를 UTC로 설정해야합니까?
ntp
에게 적합한 것을 확인하십시오!"