datetime不会保存decisecond

时间:2014-09-25 14:32:33

标签: php mysql datetime timestamp

所以我在这里读到:Why doesn't MySQL support millisecond / microsecond precision?从版本5.6.4开始,日期时间格式应该是毫秒。

但它对我来说并不起作用,即使是在它没有做到的几十秒内也是如此。当我做我的" INSERT"查询,保存的值看起来像这样" 2014-09-15 15:05:54"。

我想插入的值如下所示:" 2014-09-15T15:05:54.0" 因此,当我做比较时,我会收到错误:/

这是我的INSERT查询:

            $bdd->query('INSERT INTO ev
            (id_event, ts, sp, lg, dir)
            VALUES 
            (NULL,"'.$evTs.'","'.$ev_sp.'","'.$ev_lg.'","'.$ev_dir.'")');

" $ evTs"是时间戳。

更新1

我如何创建表格ev:

'CREATE TABLE `ev` (
`id_event` int(32) NOT NULL AUTO_INCREMENT,
`ts` datetime NOT NULL,
`sp` int(32) NOT NULL,
`lg` int(32) NOT NULL,
`dir` int(32) NOT NULL,
`nbr_voie` int(32) NOT NULL,
PRIMARY KEY (`id_event`)

1 个答案:

答案 0 :(得分:2)

那是因为T不是有效的mysql时间字符串的一部分。 MySQL的日期/时间字符串格式一直是

yyyy-mm-dd hh:mm:ss

现在支持小数秒

yyyy-mm-dd hh:mm:ss.sssss

在这种格式中没有任何地方支持T。您必须使用STR_TO_DATE()来解析您的"非标准"格式化为MySQL将接受的东西。或者甚至只是使用字符串替换并执行REPLACE('yourstring', 'T', ' ')