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

2022-01-13 00:00:00 string timestamp php mysql android

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

I am writing a query in php using a string sent from a android java application.
The query is something like :

$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 以不同的方式存储它.谢谢.

But I doubt timestamp is stored as a string inside MySQL.
How should I convert the string to time format as in MySQL?
The strtotime(string) php function converts it to unix time.
But the MySQL stores it differently, I guess. Thank you.

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

This is how it shows up in MySQL phpmyadmin: 2011-08-16 17:10:45

我的查询是错误的.Cannon 使用带有 Insert into 的 where 子句.
查询必须是 UPDATE .... SET ... = ... WHERE ....
但公认的答案是在 WHERE 子句中使用时间的正确方法.

My query is wrong though. Cannon use a where clause with Insert into.
The query has to be UPDATE .... SET ... = ... WHERE ....
But the accepted answer is the correct way to use the time inside the WHERE clause.

推荐答案

应该就是这样了:

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

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

if you want to check for timezones and such you should use strftime instead of date

相关文章