PHP Как вернуть datetime (6) из Mysql?

Когда я запрашиваю dateTime (6), PHP усекает мои 6 дробных секунд.

Вот пример моего php-кода:

$sql = 'SELECT date FROM tbl'; $statement = $connection->prepare($sql); $statement->execute(); $statement->store_result(); $statement->bind_result($date); while ($statement->fetch()) { echo $date."\n"; } 

Это возвращает 2014-01-08 21:31:15 вместо 2014-01-08 21: 31: 15.995000, что и хранится в таблице. Как я могу получить то, что фактически хранится в таблице?

Проблема заключается в использовании адаптера PHP, который вы используете для связи с Mysql. Насколько я вижу, вы используете адаптер PDO для получения результата запроса. Однако этот адаптер не поддерживает дробные секунды (ГГГГ-ММ-ДД ЧЧ: ММ: SS.F).

Адаптер PDO поддерживает YYYY-MM-DD HH: MM: SS и автоматически форматирует значение столбцов datetime в этом формате.

Это ошибка в самом адаптере PDO. Пожалуйста, найдите ссылку ниже для справки: http://grokbase.com/t/php/php-bugs/11524dvh68/php-bug-bug-54648-new-pdo-forces-format-of-datetime-fields

Возможно, вам придется отформатировать его, чтобы включить его -% f включает микро-время, не уверен, что это даст вам микросекунду или все это. Вы также можете попробовать% x вместо% f, поскольку это catch для того, что не рассматривается в формате.

  SELECT DATE_FORMAT(date, '%Y-%m-%d %H:%i:%f') FROM tbl 

DateTime не поддерживает разделенные секунды (микросекунды или миллисекунды и т. Д.)

http://www.php.net/manual/en/class.datetime.php

https://bugs.php.net/bug.php?id=51950

в вашем случае вы можете сохранить значение в MySQL как VARCHAR и case / преобразовать его в datetime при его чтении.

У меня была такая же проблема, и мне ничего не помогло, кроме преобразования