Intereting Posts

Преобразование строки в формат timestamp MySQL в php

Я пишу запрос в 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.

Solutions Collecting From Web of "Преобразование строки в формат timestamp MySQL в php"

Это должно быть все:

 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 . Почему бы вам не использовать его?