MySQL Error) now, curtime이 현재 시간과 다를 경우 해결법

반응형

# 문제점

  • 현재 시간 표기시 현재 시간과 다름.
  • curtime() 으로 현재 시간 확인
    • 현재 시간은 17시인데, 08시로 뜬다. 9시간 차이가 있다.

 

# 해결법

SET time_zone='+09:00';
  • 위의 코드를 실행하여 9시간의 차이를 맞춰준다.
  • curtime() 으로 현재 시간 재확인
    • 현재 시간 17시, 정상적으로 시간이 맞는 것을 확인 할 수 있다.

 

# 시간 차이가 나는 이유?

UTC(협정세계시)를 사용하기 때문이다.

UTC는 국제사회가 사용하는 과학적 시간의 표준을 말한다.

UTC는 한국에서와의 시간이 9시간 차이가 생기는데, 이 때문에 시간의 차이가 있는 것이다.

해결법에서 한 코드는 UTC로 설정된 시간에서 9시간을 플러스 해주어 현재 시각과 맞추는 작업을 진행한 것이다.

 

UTC로 되어있는 지 확인하는 방법은 다음과 같다.

아래의 코드를 실행하여 time_zone이 UTC인지 확인

select @@global.time_zone, @@session.time_zone,@@system_time_zone;

 

각자 사용하는 DB 서버의 형태에 맞춰 time_zone의 설정을 변경해주면 된다.

나는 아마존 RDS를 사용하기 때문에 세션의 타임존이 변경되었다.

 

반응형