MySQL/PHP - 当前日期和时间

12

我有一个查询,想要将一个列更新为当前日期时间。我想要更新的列是datetime类型的。

我该如何获取并设置它?

else{ //If the last update is NULL, It must be players first page load. So set datetime equal to NOW
    $query = "UPDATE `stats` SET `last_ap_update` =    WHERE `member_id` = {$_SESSION['SESS_MEMBER_ID']}"; 
    $queryresult = mysql_query($insertqry);
}

2
如果您在列中使用“timestamp”类型,每次记录更新时它都会自动执行此操作... http://dev.mysql.com/doc/refman/5.0/en/timestamp.html - prodigitalson
那对我的目的不起作用。 - user377419
3个回答

20

使用 NOW() 函数可以在查询中提供此功能。

else{ //If the last update is NULL, It must be players first page load. So set datetime equal to NOW
    $query = "UPDATE `stats` SET `last_ap_update` =  NOW()  WHERE `member_id` = {$_SESSION['SESS_MEMBER_ID']}"; 
    $queryresult = mysql_query($insertqry);
}

但如果每当表格更新时,这个值也需要更新,那我建议将该列更改为TIMESTAMP,这样每次记录更改时它会自动更新为当前时间。


请记住,mySql在处理小于秒的时间单位时存在问题。如果您需要此功能,则有一些不受支持的补丁。您可能希望在构建请求字符串时仅提供系统时间,并围绕纪元+微秒格式进行所有操作(正如许多需要审计的MySQL用户所做的那样)。 - Incognito

8
else{ //If the last update is NULL, It must be players first page load. So set datetime equal to NOW
    $query = "UPDATE `stats` SET `last_ap_update` =  '".gmdate("Y-m-d H:i:s")."'  WHERE `member_id` = {$_SESSION['SESS_MEMBER_ID']}"; 
    $queryresult = mysql_query($insertqry);
}

您可以使用任何您想要的格式来替代 gmdate("Y-m-d H:i:s")


2
您可以使用mysql函数NOW()来实现此功能,或者将$_SERVER['REQUEST_TIME']传递给它,以便查询被mysql缓存。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接