MySQL 为何不支持毫秒/微秒精度以及如何解决
MySQL 的 TIMESTAMP 字段和支持函数仅限于秒- 级精度,这让需要更细粒度时间测量的开发人员感到沮丧。
要解决此限制,请考虑以下解决方法:
使用 BIGINT 字段:
虽然 Doctrine 可能不会自动填充 BIGINT 字段中的毫秒,但您可以使用 PHP 函数(例如 microtime())手动计算和插入时间戳。但是,这种方法可能与 SQL 日期操作函数不兼容。
编译 UDF 扩展:
尽管编译 UDF 扩展可能不是一个理想的解决方案,因为更新风险,它可以提供对微秒精度的支持。
MySQL 5.6.4 中的改进
幸运的是,MySQL 版本 5.6.4 引入了对小数秒的支持,最多可达TIME、DATETIME 和 TIMESTAMP 值的微秒精度。此增强功能有效解决了原始问题中提到的限制。
如果升级到 MySQL 5.6.4 不可行,上述解决方法可以缓解该问题。但是,建议尽可能迁移到最新版本的 MySQL,以利用其改进的功能。
以上是为什么 MySQL 缺乏毫秒/微秒精度以及如何解决它?的详细内容。更多信息请关注PHP中文网其他相关文章!