如何在mysql中优雅的解决精确到毫秒的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在mysql中优雅的解决精确到毫秒的问题相关的知识,希望对你有一定的参考价值。

参考技术A TIMESTAMP(3)与 DATETIME(3)意思是保留3为毫秒数 TIMESTAMP(6)与 DATETIME(6)意思是保留6为毫秒数 参考技术B DATE_FORMAT() 参考技术C TIMESTAMP(3)与 DATETIME(3)意思是保留3为毫秒数 TIMESTAMP(6)与 DATETIME(6)意思是保留6为毫秒数

如何获得 MySQL 毫秒,微秒

参考技术A 经常有人问及:在 MySQL 中如何获得毫秒?于是就写篇日志总结下。
MySQL 较新的版本中(MySQL 6.0.5),也还没有产生微秒的函数,now() 只能精确到秒。 MySQL 中也没有存储带有毫秒、微秒的日期时间类型。
但,奇怪的是 MySQL 已经有抽取(extract)微秒的函数。例如:
select microsecond('12:00:00.123456'); -- 123456
select microsecond('1997-12-31 23:59:59.000010'); -- 10
select extract(microsecond from '12:00:00.123456'); -- 123456
select extract(microsecond from '1997-12-31 23:59:59.000010'); -- 10
select date_format('1997-12-31 23:59:59.000010', '%f'); -- 000010
尽管如此,想在 MySQL 获得毫秒、微秒还是要在应用层程序中想办法。假如在应用程序中获得包含微秒的时间:1997-12-31 23:59:59.000010,在 MySQL 存放时,可以设计两个字段:c1 datetime, c2 mediumint,分别存放日期和微秒。为什么不采用 char 来存储呢?用 char 类型需要 26 bytes,而 datetime + mediumint 只有 11(8+3) 字节。
毫秒、微秒名词解释:
毫秒:millisecond -- 千分之一秒
微秒:microsecond -- 一百万分之一秒

1 秒 = 1000 毫秒;1 毫秒 = 1000 微秒本回答被提问者和网友采纳

以上是关于如何在mysql中优雅的解决精确到毫秒的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何获得 MySQL 毫秒,微秒

mysql5.5时间戳能不能精确到毫秒?

如何获取sqlserver中精确到毫秒的时间

java1.8中如何使用精确到毫秒的时间

在Java中如何实现较为精确的定时器

mysql如何用sql语句将时间戳转化为正常时间精确到毫秒