타임 스탬프 열이있는 mysql 테이블이 있습니다. 우리가 지금하고 싶은 일은 datetime 열의 타임 스탬프를 더 최근에 만드는 것입니다.mysql, datetime 열을 실현하십시오.
예를 들어 최신 기록은 10 시간 전입니다. 각 행의 datetime에 10 시간을 추가하고 싶습니다. 그 작업 후에 가장 새로운 타임 스탬프는 value = now()
하나의 쿼리로 가능합니까?
타임 스탬프 열이있는 mysql 테이블이 있습니다. 우리가 지금하고 싶은 일은 datetime 열의 타임 스탬프를 더 최근에 만드는 것입니다.mysql, datetime 열을 실현하십시오.
예를 들어 최신 기록은 10 시간 전입니다. 각 행의 datetime에 10 시간을 추가하고 싶습니다. 그 작업 후에 가장 새로운 타임 스탬프는 value = now()
하나의 쿼리로 가능합니까?
이 이제 (테스트) 작품 :
SELECT MAX(`timestamp`) FROM yourTable INTO @a_variable;
UPDATE yourTable
SET `timestamp` = DATE_SUB(`timestamp`, INTERVAL TIMESTAMPDIFF(SECOND, NOW(), @a_variable) SECOND)
자세한 내용은 manual
오류 : from 절의 업데이트에 대해 대상 테이블 '...'을 지정할 수 없습니다. – TWT
@TWT 죄송합니다. 내 대답을 편집했습니다. 지금 작동, 그것을 테스트했습니다. – fancyPants
개발에 유용합니다. 감사 –
업데이트 쿼리에서 하위 쿼리를 사용해 보셨습니까? (나는 이것을 테스트하지 적이 있습니다하지만 난 그것을 작동합니다 생각)
UPDATE table
SET timestamp = ADDTIME(timestamp,
(SELECT TIMEDIFF(NOW(), timestamp)
FROM table
ORDER BY timestamp DESC
LIMIT 1))
명확히하십시오 수행 참조 모든 레코드를 지금 업데이트 하시겠습니까? 최신 기록 만 업데이트 하시겠습니까? –
모든 기록. 모든 것이 현재 시간 – TWT