很多从ORACLE 或者 SQL SERVER 移植到 MySQL 的朋友都遇到一个相同的问题,就是关于毫秒的存储与显示。 由于MySQL 的只提供了DATETIME, TIMESTAMP, TIME, DATE, YEAR这几种时间类型,而且DATETIME 以及 TIMESTAMP 的最小单位是秒,没有存储毫秒级别的函数。 不过MySQL 却能识别时间中的毫秒部分。 而且我们有多种方式可以获得毫秒的部分,比如函数:microsecond 等。

我这里举一个简单的例子,来存储秒之前和之后的部分。
对于把时间字段作为主键的应用,我们可以建立以下的表来作相应的转化:

mysql> create table mysql_microsecond ( log_time_prefix timestamp not null default 0, log_time_suffix mediumint not null default 0) engine innnodb;
Query OK, 0 rows affected, 2 warnings (0.00 sec)

mysql> alter table mysql_microsecond add primary key (log_time_prefix, log_time_suffix);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> set @a = convert(concat(now(),'.222009'),datetime);
Query OK, 0 rows affected (0.00 sec)

mysql> insert into mysql_microsecond select date_format(@a,'%Y-%m-%d %H-%i-%s'),date_format(@a,'%f');
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> select * from mysql_microsecond;
+---------------------+-----------------+
| log_time_prefix     | log_time_suffix |
+---------------------+-----------------+
| 2009-08-11 17:47:02 |          222009 |
+---------------------+-----------------+
1 row in set (0.00 sec)

或者是用VARCHAR来存储所有的时间字段, 又或者是存储一个HASH来保证性能!
方法多多,就看你的应用怎么用合理了。

转载于:https://blog.51cto.com/yueliangdao0608/190628

MySQL 关于毫秒的处理相关推荐

  1. MySQL 关于毫秒和微秒的处理,MySQL获取毫秒!

    很多从ORACLE 或者 SQL SERVER 移植到 MySQL 的朋友都遇到一个相同的问题,就是关于毫秒的存储与显示. 由于MySQL 的只提供了DATETIME, TIMESTAMP, TIME ...

  2. mysql添加毫秒级时间

    mysql添加毫秒级时间 需求描述: mysql插入数据默认时间只到秒,如果同时插入多条数据,order by 排序,顺序有可能错乱 解决方法: 将数据插入时间粒度增加到纳秒,区分入库先后,从而达到排 ...

  3. mysql 去除微秒_MySQL 关于毫秒和微秒的处理,MySQL获取毫秒!

    很多从ORACLE 或者 SQL SERVER 移植到 MySQL 的朋友都遇到一个相同的问题,就是关于毫秒的存储与显示. 由于MySQL 的只提供了DATETIME, TIMESTAMP, TIME ...

  4. mysql 插入毫秒数据_【转载】怎样在mybatis里向mysql中插入毫秒数的时间?

    由于业务场景需求,需要记录精准的时间,但是呢,又不要想使用int类型来存储时间,因为这样的可读性比较差了. 怎样在mybatis中向数据库插入毫秒级别的时间呢? 首先,先来看看怎样向数据库中插入毫秒时 ...

  5. MYSQL存储毫秒问题简单解决

    由于MySQL数据类型中只提供了DATETIME, TIMESTAMP, TIME, DATE, YEAR这几种时间类型,而且DATETIME 以及 TIMESTAMP 的最小单位是秒,没有存储毫秒级 ...

  6. mysql unixtime 毫秒_MySQL的FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别

    Unix时间戳(Unix timestamp),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数. 在MySQL中如何格式化时间戳? 在mysql中因为 ...

  7. mysql 精确毫秒_mysql 精确到毫秒

    现在很多团队在做去o的项目,迁移mysql时,为了便于binlog分析,请务必对每张表都增加ts字段. 条件:mysql5.6 My.cnf中修改参数 explicit_defaults_for_ti ...

  8. mysql毫秒转分钟_[MYSQL]时间毫秒数转换

    java中常用bigint字段保存时间,通常将时间保存为一大串数字,每次取出需要在程序里转换,有时候程序里不方便,可以使用MYSQL自带的函数FROM_UNIXTIME(unix_timestamp, ...

  9. mysql FROM_UNIXTIME 毫秒值转换

    select unix_timestamp('2021-03-21 14:28:30') from db_table输出结果: 1616308110(长度10位) SELECT from_unixti ...

最新文章

  1. C++文件输入和输出
  2. MongoDB学习笔记(一) MongoDB介绍及安装
  3. 密码学专题 证书和CA指令 申请证书|建立CA|CA操作|使用证书|验证证书
  4. 不对应该是撒尿C++五子棋
  5. C常用的字符串函数实现
  6. DPDK初始化分析(四)
  7. 【数据获取】建筑轮廓数据的N种获取方法
  8. 网络计算机显示器接口,电脑显示器常见的4种接口:VGA、DVI、HDMI、DP接口
  9. 走全渠道电商O2O模式的优势体现在哪些地方?
  10. 解决网页微信扫码登录报40163
  11. excel随机数_办公软件操作技巧052:如何在excel中填充随机数
  12. 关于Pearson相关系数的显著性p值如何计算以及背后原因的思考
  13. JavaWeb程序填空题
  14. 标签打印软件制作标签时如何导入品牌logo
  15. 如何制作流程图?流程图制作软件哪个好
  16. 家居行业数字化建设解决方案
  17. php面试php数组变ahp,php实现把数组按指定的个数分隔
  18. 百度AI入门课-day2作业
  19. hadoop可以解决什么问题_CC光嫩肤 可以解决什么皮肤问题?
  20. 由“人人网”解析移动互联网的未来发展战略

热门文章

  1. 性能压测诡异的Requests/second 响应刺尖问题
  2. squid服务器的代理
  3. 为什么选择格鲁圣教之Go程序版
  4. Titanium开发环境搭建第一个坑
  5. META的SEO优化中方法技巧
  6. 2009年2月Windows Mobile Webcast预告
  7. [转]建一个XMLHttpRequest对象池
  8. VIAT——虫洞星辰大海里程碑
  9. thinkphp 微信授权登录 以及微信实现分享
  10. 使用Vue时localhost:8080中localhost换成ip地址后无法显示页面的问题