2011-04-07 4 views
0

테이블에서 모든 레코드는 GMT 시간으로 저장됩니다. 하지만 내 응용 프로그램을 통해 나는 UTC 시간대에 해당하는 레코드 만 표시하려고합니다. 즉, 웹 페이지에서 UTC 시간대 아래에 오는 레코드 만 표시하려고합니다.GMT에서 UTC로 변환

GMT에서 UTC로 변환 중입니다. 또는 데이터베이스를 쿼리하여 UTC 시간대의 모든 레코드를 가져옵니다.

정말 초기 답변에 감사드립니다.

PHP에서 oracle 데이터베이스 및 응용 프로그램을 사용하고 있습니다.

+7

그리니치 표준시와 UTC가 실제로 동일하지 않습니까? –

+4

UTC에는 일광 절약 시간제가 없습니다. – Eelke

+5

그리니치 표준시로 영국에서 일광 절약 시간제로 전환하면 GMT도 없습니다 (http://en.wikipedia.org/wiki/Greenwich_Mean_Time 참조). –

답변

0

귀하의 시간은 DATE 값으로 저장되고, 모든 값은 UTC 시간으로 저장되며 관심있는 시간대는 일정하다고 가정합니다. UTC에서 주어진 시간대로 변환하려면 시간대 오프셋을 추가하십시오. 이 경우 관심있는 시간대에 음수 오프셋이 있으므로 동일한 음수를 추가해야합니다. 따라서, 유용 할 수 있습니다 다음

SELECT DATE_FIELD + INTERVAL '-5' HOUR 
    FROM SOME_TABLE 
    WHERE <whatever> 

FWIW, 현지 시간으로 변환 오프셋이 아닌 전체 시간 사용하는 어떤 장소가있다 - 예를 들어가, 애들레이드, 호주 GMT에서 오프셋 9.5 시간 사용 카트만두 (Nepal)는 +5.75 시간을 사용합니다.

공유하고 즐기십시오.

편집 : 다음과 같이 당신이 그것을 설명한대로 데이터를 감안할 때, 당신의 가장 좋은 방법은, 단순히 세션 시간대에 추가 아마 :

SELECT your_gmt_timestamp_field AT TIME ZONE SESSIONTIMEZONE 
    FROM your_table 

이 시도주고 도움이된다면 참조하십시오.

Greenwich Mean Time에서 위키 백과에
+0

감사합니다 ... 열의 데이터 형식은 TIMESTAMP (6)입니다. 기본적으로 데이터는 시간대에 따라 다른 사용자가 볼 수 있으므로 시간대에 따라 데이터를 표시하려고합니다. 테이블에 저장된 모든 데이터는 GMT 시간대 –

+0

@ 산토 쉬에 있습니다. 위의 편집 된 응답을 참조하십시오. –

1

:

그것은 [GMT]가 틀림없이 협정 세계시 (UTC)과 동일합니다. 시간대없이 변환에 관한

, 당신은 추가/간격을 제거 할 수 있지만 지금까지 내가 알고 있어요로, 오라클과/타임 스탬프를 지원 할 수 있습니다

select now() at time zone 'UTC' as utc, 
     now() at time zone 'EST' as est, 
     now() at time zone 'Europe/London' as london; 

마지막 예, 그것은 작동하는 경우, 일광 절약에 대해 걱정하지 않아도됩니다.

+0

감사합니다 ... 열의 데이터 형식은 TIMESTAMP (6) .. 다른 표준 시간대에 따라 다른 사용자가 데이터를 볼 수 있도록 해당 시간대에 따라 데이터를 표시하려고합니다. 표에 저장된 모든 데이터는 GMT 표준 시간대입니다. –

관련 문제