是否可以以纳秒精度存储在 MySQL DATETIME 或其他等效数据类型中?
根据分数秒文档在我看来不可能(最大6位亚秒精度= 1 usec),但也许有另一种数据类型或函数可以解决这个问题?
我希望能够以纳秒精度计算时间范围之间的差异,并希望避免将它们存储在 INT 中并进行自己的数学计算。
如果 MySQL 根本不支持这种精度,我可以安装一个插件/扩展来获得自定义的 DATETIME 精度,我可以将其设置为纳秒(第二个逗号后的 9 位数字)?
如果这是不可能的,是否有支持纳秒精度的 RDBMS?或者至少是 NoSQL(具有以纳秒精度计算时间差异的函数)?
我建议使用时间戳,但将它们存储为小数。
这是我找到的解决方案,因为你获得了很多控制权。
就我而言,我想要:
这是我创建表架构中的列定义:
`created` decimal(18,2) NOT NULL DEFAULT (unix_timestamp(now(2))) COMMENT 'unix timestamp'
使用decimal(18,2)提供了一个过度的时间范围,其存储与BIGINT或DATETIME相同,同时显示我的厘秒的2位数字。
存储是基于位数的,9位数字= 4字节,有符号或无符号都没关系。
很灵活。
您可以将范围限制为更实际的值,并使用比 DATETIME 少得多的存储空间,或者将精度提高到纳秒。 您决定什么是重要的,并且以后随时可以更改。