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

时间:2017-12-29 19:43:54

标签: php mysql

我在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,它在数据库中引入。我试图将date2也设置为CURDATE(),但它具有相同的效果。我还检查了数据库中的字段date1和date2是否具有相同的特征,并且确实如此。

有人可以找出可能出现的问题吗?

2 个答案:

答案 0 :(得分:3)

在日期中添加数字时,结果是数字,而不是日期。改为使用DATE_ADD()

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

答案 1 :(得分:1)

使用正确的date_add(..)函数将curdate()

添加到日期
"UPDATE biblioteca SET date1=CURDATE(), date2=date_add(CURDATE(), INTERVAL 14 DAY) 
  WHERE id_carte=$id_carte");

您描述的行为很奇怪..然后尝试使用now()

中的日期部分
"UPDATE biblioteca 
  SET date1=date(now()) , date2=date_add(date(now(), INTERVAL 14 DAY) 
 WHERE id_carte=$id_carte");