2012-05-24 8 views
0

타임 스탬프 열이있는 mysql 테이블이 있습니다. 우리가 지금하고 싶은 일은 datetime 열의 타임 스탬프를 더 최근에 만드는 것입니다.mysql, datetime 열을 실현하십시오.

예를 들어 최신 기록은 10 시간 전입니다. 각 행의 datetime에 10 시간을 추가하고 싶습니다. 그 작업 후에 가장 새로운 타임 스탬프는 value = now()

하나의 쿼리로 가능합니까?

+0

명확히하십시오 수행 참조 모든 레코드를 지금 업데이트 하시겠습니까? 최신 기록 만 업데이트 하시겠습니까? –

+0

모든 기록. 모든 것이 현재 시간 – TWT

답변

1

이 이제 (테스트) 작품 :

SELECT MAX(`timestamp`) FROM yourTable INTO @a_variable; 
UPDATE yourTable 
SET `timestamp` = DATE_SUB(`timestamp`, INTERVAL TIMESTAMPDIFF(SECOND, NOW(), @a_variable) SECOND) 

자세한 내용은 manual

+0

오류 : from 절의 업데이트에 대해 대상 테이블 '...'을 지정할 수 없습니다. – TWT

+0

@TWT 죄송합니다. 내 대답을 편집했습니다. 지금 작동, 그것을 테스트했습니다. – fancyPants

+0

개발에 유용합니다. 감사 –

0

업데이트 쿼리에서 하위 쿼리를 사용해 보셨습니까? (나는 이것을 테스트하지 적이 있습니다하지만 난 그것을 작동합니다 생각)

UPDATE table 
SET timestamp = ADDTIME(timestamp, 
         (SELECT TIMEDIFF(NOW(), timestamp) 
         FROM table 
         ORDER BY timestamp DESC 
         LIMIT 1)) 
+0

으로 변경되어야하며, 10 시간은 시험 시간이며, 간격은 쿼리에 의해 결정되어야합니다. – TWT

+0

어디에서 결정 했습니까? – Toote

+0

가장 최근 날짜 시간입니다. 예를 들어 가장 최근 날짜 시간이 5 시간 10 분 전인 경우 각 날짜 시간에 5 시간 10 분을 추가해야합니다. – TWT

관련 문제