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

时间:2011-08-18 19:27:49

标签: php android mysql string timestamp

我正在使用从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子句中使用时间的正确方法。

3 个答案:

答案 0 :(得分:30)

这应该是全部:

date("Y-m-d H:i:s", strtotime($_POST['timestamp']));

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

答案 1 :(得分:3)

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

$mysqldatetime = date("Y-m-d H:i:s", $unixTimeStampValue);

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

  

2011-08-18 16:31:32

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

请参阅date函数的手册以获取更多信息以及格式化其返回值的其他方法。

修改

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

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

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

答案 2 :(得分:1)

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