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

时间:2010-10-29 21:15:51

标签: php datetime mysql

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

有人知道最好的方法吗?

2 个答案:

答案 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