Вставьте странно отформатированные даты в MySQL из PHP - PullRequest
0 голосов
/ 13 ноября 2010

Я уверен, что это должен быть общий вопрос, но я нигде не могу его найти, так что вот так:

У меня есть даты в этом формате: 09/Jul/2003:00:03:48 -0300, и я хочу вставить их в поле DATETIME в MySQL.

Какой самый простой способ сделать это? Нажатие на них как есть приводит к их обнулению.

Ответы [ 3 ]

5 голосов
/ 13 ноября 2010

MySQL не включает часовой пояс в DATETIME, но вы можете использовать:

STR_TO_DATE('09/Jul/2003:00:03:48', '%d/%b/%Y:%H:%i:%s')

... для преобразования строкового представления даты / времени в DATETIME для хранения в базе данных.

Ссылка:

0 голосов
/ 13 ноября 2010

Моя любимая функция во всем PHP - strtotime(). Если это не может интерпретировать ввод, то я, вероятно, не могу кодировать то, что могло бы.

Так что я бы сделал что-то вроде:

mysql_real_escape_string(date('Y-m-d H:i:s', strtotime($stragely_formatted_date)));

для подготовки строки DATE для передачи в MySQL.

Как всегда, подумайте о часовых поясах в вашем дизайне.

Возможно, mysql_real_escape_string() не нужен, но я всегда чувствую себя в большей безопасности, когда использую его.

0 голосов
/ 13 ноября 2010

Насколько я знаю, не может быть изменено и должно быть в формате ниже:

'ГГГГ-ММ-ДД ЧЧ: ММ: СС'

http://dev.mysql.com/doc/refman/5.1/en/datetime.html

...