Lan*_*don 17 php mysql sql datetime
当我查询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";
}
Run Code Online (Sandbox Code Playgroud)
这将返回2014-01-08 21:31:15而不是2014-01-08 21:31:15.995000这是存储在表中的内容.如何获得表中实际存储的内容?
问题在于您用于与Mysql通信的PHP适配器。据我所知,您正在使用PDO适配器来获取查询结果。但是,此适配器不支持小数秒(YYYY-MM-DD HH:MM: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
小智 5
您可以格式化它以包括它。%f包含六位数的微秒。
SELECT DATE_FORMAT(date, '%Y-%m-%d %H:%i:%s.%f') FROM tbl
Run Code Online (Sandbox Code Playgroud)
ATe*_*Guy -2
DateTime 不支持分秒(微秒或毫秒等)
http://www.php.net/manual/en/class.datetime.php
https://bugs.php.net/bug.php?id=51950