2011-10-09 3 views
10

내 MySQL 5.0 DB에는 LastUpdated 정보를 제어 할 수있는 열이 있습니다. Column은 TimeStamp이고, MySql은 자동으로 데이터를 업데이트합니다.MySql - UTC 형식의 시간 스탬프 열

이 열을 UTC 형식으로 선택하려고합니다.

문제는 서버가 미국 datetime으로 설정된다는 것입니다. MySql 설명서에 따르면 DB는 UTC로 정보를 저장하지만 정보를 표시하려면 서버의 시간으로 변환합니다.

이 변환을 피하기 위해 SELECT 명령을 수행 할 수있는 방법이 있습니까?

+0

가능 중복 된 [mysql을의 시간대를 설정하는 방법?] (http://stackoverflow.com/questions/930900/how-to-set-timezone- of-mysql) – Evert

답변

6

은 서버의 기본 시간대를 바꾸는 것 외에, 시간대도이 SQL 문을 실행하여 연결 당 조정할 수 있습니다 :

시간대가 시간대 ( see MySQL docs)의 이름입니다
SET time_zone = timezone; 

.

또는 CONVERT_TZ function을 사용하여 타임 스탬프를 다른 시간대로 변환 할 수도 있습니다.

23
SELECT 
CONVERT_TZ(`timestamp_field`, @@session.time_zone, '+00:00') AS `utc_datetime` 
FROM `table_name` 

나는 여기에 쪽지를 만들어 : Should MySQL have its timezone set to UTC?

+0

이것은 정말 최고의 대답입니다. @@ session.time_zone이 어떤 상태인지는 중요하지 않으며 UTC와 time_zone 세션의 일부 열을 선택할 수 있습니다. 동일한 기술을 사용하여 사용자의 시간대를 선택하면 오프셋을 사용할 수 있습니다. –

+0

참고 : 세션 time_zone이 일광 절약 시간 조정의 적용을받는 경우 (예 : CST6CDT는 시계가 "뒤로 물러"는 1 시간이 모호합니다. – spencer7593