我在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是否具有相同的特征,并且确实如此。
有人可以找出可能出现的问题吗?
答案 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");