2013-11-28 83 views
2

我有一個名爲「lastfed」的時間戳列的數據庫表。插入CURRENT_TIME減1小時?

有人知道我可以如何用當前時間減去例如1小時來更新該列嗎?

$query = $db->prepare("UPDATE test SET fullness = $newFullness, lastfed = CURRENT_TIME WHERE id = ?"); 

回答

4

使用date_sub()

UPDATE test 
SET fullness = $newFullness, 
    lastfed = date_sub(now(), INTERVAL 1 HOUR) 
WHERE id = ? 

sqlfiddle demo

+0

謝謝你的作品!當時間允許時,我會將你的答案標記爲已解決! – Lisa

+0

只是一個簡單的問題,如果我需要它是例如30分鐘,那麼我該怎麼寫? 30分鐘不起作用... – Lisa

+0

最後使用MINUTE而沒有s。請參閱[這裏](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add)瞭解可用的表達式。 [Here](http://sqlfiddle.com/#!2/d41d8/26082)爲例。 –

0
UPDATE test 
SET fullness = $newFullness, lastfed = SUBDATE(CURDATE(), INTERVAL 1 HOUR) WHERE id = ? 
+0

在這種情況下使用curdate是不正確的。 Curdate返回時間戳的日期部分。將時間戳列設置爲curdate - 30分鐘將在昨天23:30結束。 [here](http://sqlfiddle.com/#!2/d41d8/26083)爲例。 –