`
sogo6
  • 浏览: 113344 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MySQL:如何获得 MySQL 毫秒、微秒

 
阅读更多
经常有人问及:在 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时间戳datatime存储四舍五入问题.docx

    DateTime类型在MySQL中默认支持微秒级别的精度,即可以存储到小数点后六位。但在您的描述中,字段长度设置为0,这可能导致MySQL自动地将其四舍五入到最近的毫秒。例如,入库前的时间是2020/06/11 07:41:02.900000000...

    Mysql_性能优化教程

    - 当数据查询量极大而更新较少、实时性要求不高、数据规模有限时,考虑使用单一排序序列进行折半查找以获得最高效查询。 **1.4 实战案例** - **案例一: IP地址反查** - **资源**: IP地址对应表。 - **目标**: ...

    Mysql_如何进行性能优化教程

    - **微秒级优化**:即使是毫秒级别的查询也可能存在优化空间,特别是对于那些频繁执行的查询操作。例如,在游戏社区展示用户动态时,通过调整索引的结构(如使用`uid+lastlogin`的复合索引),可以显著降低影响结果...

    MySQL练习题及答案.pdf

    17. **时间数据类型精度**:MySQL 5.6开始支持秒级别的时间数据类型精度,从MySQL 5.7开始支持毫秒,再到更高级别的微秒。 18. **binlog_row_image参数**:为了减少IO吞吐,binlog_row_image设置为`Minimal`仅记录...

    关于MySQL的时间进位问题浅析

    这意味着当你存储的时间值带有小于秒的精度,比如毫秒或微秒时,这些值会被四舍五入到最接近的秒。这种行为可能会导致意外的结果,尤其是在处理精确时间记录时,可能会出现记录被错误地分配到不同的日期。 为了更好...

    MySQL日期数据类型、MySQL时间类型使用总结.docx

    MySQL数据库在处理日期和时间数据时提供了多种数据类型,包括日期类型和时间...在MySQL 5.x及以上版本中,这些日期时间类型仅支持到秒级别,不包含毫秒或微秒。如果你需要更高的精度,可能需要在应用程序层面进行处理。

    浅谈MySQL数据库性能优化

     这里先引用一句话,从内存中读取一个数据的时间消耗是微秒级别,而从普通硬盘上读取一个数据是在毫秒级别,二者相差3个数量级。可见,想对MySQL数据库进行优化,合理调配缓存参数显得更为直接  表缓存  相关...

    2011年MySQL日期数据类型、MySQL时间类型使用总结.doc

    需要注意的是,截至2008年,MySQL的时间类型只支持到秒级精度,不包括毫秒或微秒。如果你需要更高精度的时间记录,可能需要寻找其他解决方案或者使用额外的编程逻辑来实现。 在设计数据库时,正确选择日期和时间...

    mysql性能优化教程

    - 监控查询性能,确保所有查询都在毫秒级完成。 - 定期检查慢查询日志,对于耗时超过0.01秒的查询进行优化。 #### 三、MySQL运维优化 ##### 1. 存储引擎的选择与配置 - **存储引擎类型**:不同的存储引擎(如...

    Mysql的性能优化

    - **微秒级优化**:对于高并发、高流量的应用场景,即使是毫秒级别的延迟也需要被优化。例如,通过合理设计索引和优化查询语句,可以将查询时间降低到微秒级别。 #### 理解执行状态 - **SQL执行过程**:了解SQL...

    MySQL中你应该使用什么数据类型表示时间.docx

    DATETIME 类型的值可以在尾部包含一个毫秒部分,精确度最高到微秒(6 位数)。 Timestamp 数据类型 Timestamp 数据类型用于保存同时包含日期和时间两部分的值。它提供自动初始化和更新到当前的日期和时间的功能,...

    关于MySQL 时间类型 datetime、bigint、timestamp,你用哪个?

    ### MySQL时间类型详解:datetime、bigint、timestamp 在MySQL中,根据不同的应用场景和需求,可以选择多种方式来存储日期和时间信息。本篇文章将详细介绍三种常用的时间类型:`datetime`、`bigint` 和 `timestamp`...

    如何在Django中添加没有微秒的 DateTimeField 属性详解

    例如,在上述描述中,前端分页基于时间戳,而时间戳通常只精确到毫秒,因此,当Django的DateTimeField包含微秒时,可能导致分页错误。 问题的核心在于Django的DateTimeField在数据库中保存的日期时间包括了微秒部分...

    PHP获取毫秒级时间戳的方法

    这样就可以得到一个准确的毫秒级时间戳。具体实现代码如下: ```php function getMillisecond() { list($t1, $t2) = explode(' ', microtime()); return (float)sprintf('%.0f', (floatval($t1) + floatval($t2))...

    MySQL 获得当前日期时间的函数小结

    除此之外,MySQL 还提供了 Extract(选取)函数,允许我们从日期时间字段中提取特定部分,如年、季度、月、日、小时、分钟、秒,甚至是微秒。例如,我们可以设置一个日期时间变量 `@dt`,然后使用如下方式提取各部分...

    MySQL数据库性能优化之缓存参数优化

    而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级。所以,要优化数据库,首先第一步需要优化的就是IO,尽可能将磁盘IO转化为内存IO。本文先从...

    PHP获取MySQL执行sql语句的查询时间方法

    它使用`microtime()`函数获取微秒级的时间戳,然后通过计算前后时间戳的差值来得到查询执行所花费的时间。这里的`runtime(1)`在查询结束后调用,以输出执行时间。 ```php function runtime($mode=0) { static $t; ...

Global site tag (gtag.js) - Google Analytics