在php中将字符串转换为MySQL时间戳格式

我正在使用从android java应用程序发送的字符串在php中编写查询。
查询类似于:

$insertSQL = sprintf("INSERT INTO app_DuckTag (taste) VALUES (%s) WHERE species=%s AND timestamp=%s", GetSQLValueString($_POST['taste'], "text"), GetSQLValueString($_POST['species'], "text"), GetSQLValueString($_POST['timestamp'], "text")); 

但我怀疑时间戳是否存储在MySQL中的字符串中。
我应该如何在MySQL中将字符串转换为时间格式?
strtotime(string)php函数将其转换为unix时间。
但我想MySQL存储的方式不同。 谢谢。

编辑:这是它在MySQL phpmyadmin中显示的方式:2011-08-16 17:10:45

编辑:我的查询错了。 Cannon使用带有Insert into的where子句。
查询必须是UPDATE …. SET … = … WHERE ….
但是接受的答案是在WHERE子句中使用时间的正确方法。

这应该是全部:

 date("Ymd H:i:s", strtotime($_POST['timestamp'])); 

如果你想检查时区等,你应该使用strftime而不是date

如果您可以将输入’string’(您没有提供接收它的格式)输入到Unix时间戳值,您可以轻松地将其转换为MySQL日期时间格式,如下所示:

 $mysqldatetime = date("Ymd H:i:s", $unixTimeStampValue); 

这将生成类似于以下内容的字符串

2011-08-18 16:31:32

这是MySQL 日期时间格式的格式。 如果使用不同的时间格式,则date函数的第一个参数将不同。

有关更多信息以及可以格式化其返回值的其他方法,请参阅日期函数的手册。

编辑

您正在接收以MySQL日期时间格式格式化的字符串。 清理后,您可以将其直接插入数据库。 对MySQL来说,它可能是一个’datetime’数据types,但对于PHP来说它只是一个字符串(就像你的整个SQL查询只不过是PHP的字符串一样)。

 $timestamp = mysql_real_escape_string($_POST['timestamp']); 

您应该能够安全地将其插入数据库中以获取时间戳字段。

mysql中有一个函数FROM_UNIXTIME 。 你为什么不想用呢?