如何在mysql数据库中更新时间戳


How to update timestamp in a mysql database?

执行以下php代码时出现一些错误:

$today = date("Y-m-d H:i:s");
$sql = "UPDATE `deposit_admin_report` SET `READING`=$item,`Timestamp`=$today WHERE `METER_NUMBER`='NP-1353-'";

错误:

 UPDATE `deposit_admin_report` SET `READING`=395,`Timestamp`=2015-11-27 09:08:33 WHERE `METER_NUMBER`='NP-1353-'
 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '09:08:33 WHERE `METER_NUMBER`='NP-1353-'' at line 1

Timestamp列的类型为"Timestamp",在mysql表中默认为"null"。

如果有人能帮我,我将不胜感激。

提前感谢

这里是您需要的:

$today = date("Y-m-d H:i:s");
$sql = "UPDATE `deposit_admin_report` SET `READING`=$item,`Timestamp`='".$today."' WHERE `METER_NUMBER`='NP-1353-'";

还有另一种方式:

只需使用NOW()

像这样:

$sql="更新deposit_admin_report设置READING='$item',Timestamp=NOW()其中METER_NUMBER='NP-1353-'";

就是这样:)

使用MySQL NOW()或将此$item更改为此'$item'

$sql = "UPDATE `deposit_admin_report` SET `READING`='$item',`Timestamp`=NOW() 
WHERE `METER_NUMBER`='NP-1353-'";
$today = date("Y-m-d H:i:s");
$sql = "UPDATE `deposit_admin_report` SET `READING`= '" . $item . "',`Timestamp`= '" . $today . "' WHERE `METER_NUMBER`='NP-1353-'";

它将日期中的空格视为一个单独的单词,而不是时间戳的值。

此外,只使用NOW() 要容易得多

$sql = "UPDATE `deposit_admin_report` SET `READING`= '" . $item . "',`Timestamp`= 'NOW()' WHERE `METER_NUMBER`='NP-1353-'";

Date字段接受一个字符串,该字符串应该用单引号括起来。

  $sql = "UPDATE `deposit_admin_report` SET `READING`= $item, `Timestamp`= '$today' WHERE `METER_NUMBER`='NP-1353-'";

问题已经得到回答。请注意在Master / Slave体系结构中使用NOW()的注意事项。

如果从属服务器的时区与主服务器的时区不同,则存储在主服务器上的时间戳值将与存储在从属服务器上的值不同。

建议使用以下步骤:

date_default_timezone_set('UTC'); // UTC is an example
$today = date("Y-m-d H:i:s");
$sql = "
UPDATE `deposit_admin_report`
SET `READING`=$item,`Timestamp`='".$today."'
WHERE `METER_NUMBER`='NP-1353-'
";