Я пишу запрос в php, используя строку, отправленную с помощью приложения android java.
Запрос выглядит примерно так:
$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("Ymd H:i:s", strtotime($_POST['timestamp']));
если вы хотите проверить часовые пояса и т. д., вы должны использовать strftime вместо даты
Если вы можете получить ввод «string» (который вы не предоставили в формате, который вы получаете) в значение временной метки Unix, вы можете легко преобразовать его в формат datetime MySQL следующим образом:
$mysqldatetime = date("Ymd H:i:s", $unixTimeStampValue);
Это приведет к строке, подобной следующей:
2011-08-18 16:31:32
Каков формат формата даты и времени MySQL. Если вы используете другой формат времени, тогда первый аргумент функции date
будет отличаться.
См. Руководство по функции даты для получения дополнительной информации и других способов форматирования возвращаемого значения.
редактировать
Вы получаете строку, форматированную в формате MySQL datetime. После его очистки вы можете вставить его непосредственно в базу данных. Для MySQL это может быть тип данных «datetime», но для PHP это просто строка (точно так же как весь ваш SQL-запрос – это не что иное, как строка для PHP).
$timestamp = mysql_real_escape_string($_POST['timestamp']);
Вы должны быть в состоянии безопасно вставить это в свою базу данных для поля timestamp.
В mysql есть функция FROM_UNIXTIME . Почему бы вам не использовать его?