Ответ 1
Это должно быть все:
date("Y-m-d H:i:s", strtotime($_POST['timestamp']));
если вы хотите проверить часовые пояса, и вы должны использовать strftime вместо даты
Я пишу запрос в php, используя строку, отправленную из приложения для Android android.
Запрос выглядит примерно так:
$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"));
Но я сомневаюсь, что timestamp хранится как строка внутри MySQL.
Как преобразовать формат строки в формат времени, как в MySQL?
Функция strtotime (string) php преобразует ее в unix-время.
Но MySQL хранит его по-другому, я думаю. Спасибо.
EDIT: так выглядит в MySQL phpmyadmin: 2011-08-16 17:10:45
EDIT: Мой запрос неверен. Cannon использует предложение where с Insert into.
Запрос должен быть UPDATE.... SET... =... ГДЕ....
Но принятый ответ - правильный способ использовать время внутри предложения WHERE.
Это должно быть все:
date("Y-m-d H:i:s", strtotime($_POST['timestamp']));
если вы хотите проверить часовые пояса, и вы должны использовать strftime вместо даты
Если вы можете получить ввод "string" (который вы не предоставили формат, который вы получаете) в значение временной метки Unix, вы можете легко преобразовать его в формат даты и времени MySQL, например:
$mysqldatetime = date("Y-m-d H:i:s", $unixTimeStampValue);
Это создаст строку , похожую на следующее:
2011-08-18 16:31:32
Каков формат формата даты и времени MySQL. Если вы используете другой формат времени, тогда первый аргумент функции date
будет отличаться.
Подробнее см. руководство для date для получения дополнительной информации и других способов форматирования возвращаемого значения.
Edit
Вы получаете строку, форматированную в формате MySQL datetime. После его очистки вы можете вставить его непосредственно в базу данных. Для MySQL это может быть тип данных "datetime", но для PHP это просто строка (как и весь ваш SQL-запрос - это не что иное, как строка для PHP).
$timestamp = mysql_real_escape_string($_POST['timestamp']);
Вы должны быть в состоянии безопасно вставить это в свою базу данных для поля timestamp.
В mysql есть функция FROM_UNIXTIME. Почему бы вам не использовать его?