我试图用'过期日期'更新MySQL表。我收集了我所有行的时间戳值,因为人们已经注册到表中,但现在我想创建相对于该时间戳的过期日期(而不是相对于当前时间)。这里是我的代码:相对于CURRENT_TIMESTAMP的更新行没有给出正确的值
$timestamp = $row['timestamp'];
$sql_update = "
UPDATE jobs
SET expiration_date = DATE_ADD('$timestamp',INTERVAL 56 DAY)";
$result_update = $mysqli->query($sql_update) or die($mysqli->error);
明白,这是正在运行的“而”循环所以它的运行通过表的每一行,因为它进入一个更新它们。问题是我运行了一次,它所做的只是将“expiration_date”行更新为NOW的56天,而不是56天后的时间戳值。时间戳在CURRENT_TIMESTAMP上设置,以便当我注册一个新条目时,我认为是问题所在。我回应了$ timestamp来排除故障,当我回应它时,它会回应出正确的值(而不是当前时间),但是当它实际更新过期日期时,它似乎是从CURRENT_TIMESTAMP这一事实中绘制出来的。有没有办法显式查询时间戳的值?
我希望找到一种不涉及重构数据库的方式。我知道我可以拥有它,而不是一个时间戳记行,我可以使它成为一个日期时间行,并将其设置为NOW()的值,当数据库最初被查询添加一行时,但我更愿意找到一个解决方案表格当前的设置方式。谢谢!