2010-10-29 44 views
12

我試圖根據發生的某些事件添加秒數。通常情況下,如果這些事件同時發生,則會添加太多秒。下面是我當前如何做它在PHP和MySQL在MySQL中爲日期時間添加秒

$time_add_on = 15 - $seconds_left; 
DATE_ADD(STR_TO_DATE(end_dt,'%Y-%m-%d %H:%i:%s'), INTERVAL '".$time_add_on."' SECOND 

這是什麼東西做的是從「END_DT」減去15並將其添加到「END_DT」左當前秒,基本上給你15秒時。

這裏的目標基本上也是增加15秒或將日期重置到只剩15秒的地方。這是造成問題的原因,而不是重置到15秒左右,而是增加30秒或45秒。

有人會知道最好的方法來做到這一點嗎?

回答

22
UPDATE table end_dt = DATE_ADD(end_dt, INTERVAL 15 second) 
WHERE DATE_SUB(end_dt, INTERVAL 15 second) <= NOW() 

我認爲這是你想要的,基本上添加了15秒END_DT時END_DT是15秒距離現在

編輯新的查詢 這個查詢應該工作:

UPDATE `table` 
    SET end_dt = DATE_ADD(end_dt, INTERVAL (15 - TIMESTAMPDIFF(SECOND, NOW(), end_dt)) SECOND) 
WHERE DATE_SUB(end_dt, INTERVAL 15 second) <= NOW() 
+0

嘿洛根,所以這是行不通的,因爲如果還有10秒鐘,而你又加了15秒,那還剩25秒。 – dzm 2010-11-04 15:16:05