在MySQL中将日期添加到日期时间

dzm*_*dzm 14 php mysql datetime

我正在尝试根据发生的某些事件向日期添加秒数.通常,如果这些事件同时发生,则会添加太多秒.这是我目前在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
Run Code Online (Sandbox Code Playgroud)

这样做是从'end_dt'减去15并将其添加到'end_dt'时剩下的当前秒数,基本上给你15秒.

这里的目标基本上是添加15秒或将日期重置为只剩下15秒的地方.这导致了问题,而不是重置为15秒,它将增加30秒或45秒.

谁会知道最好的方法呢?

Log*_*ley 27

UPDATE table end_dt = DATE_ADD(end_dt, INTERVAL 15 second)
WHERE DATE_SUB(end_dt, INTERVAL 15 second) <= NOW()
Run Code Online (Sandbox Code Playgroud)

我认为这就是你想要的,当end_dt离现在15秒时,它基本上会增加15秒到end_dt

编辑新查询此查询应该有效:

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()
Run Code Online (Sandbox Code Playgroud)


Ama*_*T L 6

TIMESTAMPADD(SECOND,15,NOW())
Run Code Online (Sandbox Code Playgroud)

单位 = 添加秒数 = 15