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

时间:2015-11-27 09:44:12

标签: php mysql

执行此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的类型为#34;时间戳"默认为" null"在mysql表中。

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

提前致谢

5 个答案:

答案 0 :(得分:2)

这就是你需要的:

$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() 在哪里METER_NUMBER ='NP-1353 - '“;

就是这样:))

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

$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-'";

答案 3 :(得分:0)

日期字段接受一个字符串,您应将其括在单引号中。

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

答案 4 :(得分:0)

这个问题已经回答了。想要注意在NOW()架构中使用Master / Slave的警告。

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

建议使用以下步骤:

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-'
";