我正在尝试根据发生的某些事件向日期添加秒数。通常,如果这些事件同时发生,则会添加太多秒。以下是我目前在PHP和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秒。
有人知道最好的方法吗?
答案 0 :(得分:25)
UPDATE table end_dt = DATE_ADD(end_dt, INTERVAL 15 second)
WHERE DATE_SUB(end_dt, INTERVAL 15 second) <= NOW()
我认为这就是你想要的,当end_dt离现在15秒时,基本上会给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()
答案 1 :(得分:0)
TIMESTAMPADD(SECOND,15,NOW())
单位=秒 添加的秒数= 15