【发布时间】:2014-09-25 14:32:32
【问题描述】:
所以我在这里读到:Why doesn't MySQL support millisecond / microsecond precision? 从版本 5.6.4 开始,日期时间格式应该持续到毫秒。
但它对我不起作用,即使它不需要分秒。当我执行“INSERT”查询时,保存的值如下所示“2014-09-15 15:05:54”。
我想插入的值如下所示:“2014-09-15T15:05:54.0” 所以当我进行比较时,我得到了错误:/
这是我的插入查询:
$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`)
)
【问题讨论】:
-
请向我们展示您的
ev表的CREATE TABLE语句。你得到这个,即SHOW CREATE TABLE ev。必须是 DATETIME(3) 才能获得毫秒。 -
两个可能的原因: 1) PHP 中的时间戳是整秒的整数,因此您可能存储了错误的值。 2. 你得到的结果可能会以隐藏毫秒的方式进行格式化。如果您可以显示最终查询,这将有所帮助。这些变量不是很有帮助。
-
正如我所说,您必须使用
ALTER COLUMN来获取fractional second support。然后使用@MarcB 提到的语法。
标签: php mysql datetime timestamp