久々にコードを書いている

PHP(5.6.28 (cli)) windows10(64)、mysql( 10.1.19-MariaDB) にて開発を行っています。

2つの時間差(ミリ秒差)を取りたくて以下のようなコードを書きました。


$stmt = $this->pdo->prepare("SELECT TIMEDIFF(:time0, :time1) AS delay");
$stmt->bindParam(':time1', $time1, PDO::PARAM_STR);
$stmt->bindParam(':time0', $tr[12], PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($row);
結果は・・・

Array
(
[delay] => -00:59:59
)
Array
(
[delay] => -00:59:59
)
Array
(
[delay] => -00:59:59
)
Array
(
[delay] => -00:59:59
)
Array
(
[delay] => -00:59:59
)
Array
マイクロ秒以下がばっさり切り捨てられています。
※データベースの型はtime(2)としています。
原因を探っているのですが、PDOStatement::fetch に原因があるとしか思えない状態で困っています。

どうやらPDOのバグみたいです。
PDOはfloatとかdouble以外は少数以下は切り捨ててしまっています(ノ∀`)アチャー

http://stackoverflow.com/questions/31227069/laravel-timestamps-to-show-milliseconds/31930762#31930762