Php-Mysql:日期字段更新为 0000-00-00,而不是正确/请求的日期



>我在phpMyAdmin中有一个数据库,其中包含(除其他字段外)两个日期字段(我们称它们为date1和date2),类型为"date"和默认值"null"。 在 php 中,我想更新这些日期字段:

$query6 = mysqli_query($link, "UPDATE biblioteca SET date1=CURDATE(), date2=CURDATE()+14 WHERE id_carte=$id_carte");

对于date1,一切正常(当前日期以 2017-12-29 格式在表中引入),但对于 date2,它在数据库 0000-00-00 中引入。我尝试将 date2 也设置为 CURDATE(),但它具有相同的效果。我还检查了字段 date1 和 date2 在数据库中是否具有相同的特征,并且它们确实如此。

有人能弄清楚问题所在吗?

向日期添加数字时,结果是数字,而不是日期。请改用DATE_ADD()

UPDATE biblioteca SET date1=CURDATE(), date2=DATE_ADD(CURDATE(), INTERVAL 14 DAY) WHERE ...

使用适当的 date_add(..) 函数将 day 添加到 curdate()

"UPDATE biblioteca SET date1=CURDATE(), date2=date_add(CURDATE(), INTERVAL 14 DAY) 
WHERE id_carte=$id_carte");

你描述的行为很奇怪..然后尝试使用现在()的日期部分

"UPDATE biblioteca 
SET date1=date(now()) , date2=date_add(date(now(), INTERVAL 14 DAY) 
WHERE id_carte=$id_carte");

最新更新