久々にコードを書いている
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以外は少数以下は切り捨ててしまっています(ノ∀`)アチャー