2010-06-03 2 views
0

가능한 중복 : 나는 영국에서 나처럼
Add 2 hours to current time in MySQL?SQL 시간 문제 - 필요성이 6 시간 앞으로

내 서버가 현재 우리를 기반으로

동부 시간, 내가 필요 6 시간 앞으로 이동하십시오.

mysql에서 NOW()을 사용할 때 잘못된 시간이 표시되고 NOW()에 추가 할 수있는 것이 있습니까? 6 시간 앞으로 가져 오려면 어떻게해야합니까? 감사

+3

이 종류의 앱에 따라 다르지만 대부분의 경우는 UTC의 모든 시간을 저장하고 UI의 시간대 변환을 수행하는 것이 좋습니다. 그렇게하면 서버의 시간대와 그와 같은 것에 대해 걱정할 필요가 없습니다. –

+0

++ Matti. 현지 시간을 사용하는 경우, 출근/퇴근 일광 절약 시간으로 모두 한시간 떨어져 있습니다. 날 믿어, 나쁜거야. UTC를 사용하십시오. – DougN

+0

와우! 조심해! 미국에서는 일광 절약 시간제를 사용하기 때문에 일반적인 경우에는 6 시간을 추가해도 작동하지 않습니다. 시간차가 항상 6 시간이되는 것은 아닙니다. 때로는 5 점입니다. 따라서 시간대를 기준으로 시간을 변환하는 함수가 필요합니다. –

답변

1

당신은 DateAdd 기능을 사용하려면 :

예 :

SELECT DATEADD(hour, 6, GetDate()) 
+0

MSSQL이 아닌 MySQL입니다. – Guffa

+0

바라건대 MySQL에 상응하는 기능이 있습니다. – Darknight

1

참조 this

SELECT ADDTIME(now(), '06:00:00') 

이 DIFFERNCE 함께 여기를 참조

SELECT ADDTIME(now(), '06:00:00') as EAST_TIME , now() as UK_TIME 
0

연결 별 시간대. 연결하는 각 클라이언트에는 time_zone 세션 변수에 의해 지정된 자체 시간대 설정이 있습니다. 처음에는 세션 변수가 전역 time_zone 변수에서 값을 가져 오지만 클라이언트는 다음 문을 사용하여 자체 시간대를 변경할 수 있습니다.

mysql> SET time_zone = timezone;

값은 '+10 : 00'또는 '-6 : 00'과 같이 UTC로부터의 오프셋을 나타내는 문자열로 주어질 수 있습니다.

date_add(now(), interval 6 hour) 

또한 date_add의 별칭입니다 adddate를 사용할 수 있습니다

1

예, 당신은 date_add 기능을 사용할 수 있습니다.

데이터베이스에 시간을 UTC로 저장하고 표시 할 때 현지 시간으로 변환하는 것도 고려하십시오.

변환 시간이 정해진 시간 수 대신 하나의 시간대에서 다른 시간대로 변환되는 경우 convert_tz 기능을 사용할 수 있습니다. 예 :

convert_tz(now(), '-6:00', '0:00') 

또는 :

convert_tz(now(), 'US/Eastern', 'MET') 
+0

+1 : OP가 CONVERT_TZ를 사용해야하고, MySQL 인스턴스가 사용하는 시간대를 알아야합니다 ... –