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

mysql5.5时间戳能不能精确到毫秒?,第1张

Mysql5中直接使用timestamp类型精确不到毫秒,Mysql5本身做不到。

MySQL5的日期类型有三种:DATETIME、DATE和TIMESTAMP,除了DATE用来表示一个不带时分秒的是日期,另外两个都带时分秒。

想在 MySQL 获得毫秒、微秒还是要在应用层程序中想办法。假如在应用程序中获得包含微秒的时间:1997-12-31 23:59:59.000010,在 MySQL 存放时,可以设计两个字段:c1 datetime, c2 mediumint,分别存放日期和微秒。

毫秒、微秒名词解释:

毫秒:millisecond -- 千分之一秒

微秒:microsecond -- 一百万分之一秒

1 秒 = 1000 毫秒;1 毫秒 = 1000 微秒

经常有人问及:在 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 微秒


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7301056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存