由于业务场景需求,需要记录精准的时间,但是呢,又不要想使用int类型来存储时间,因为这样的可读性比较差了。

怎样在mybatis中向数据库插入毫秒级别的时间呢?

首先,先来看看怎样向数据库中插入毫秒时间。这是关键问题,如果直接向数据库插入时间都无法完成,那就不要想借助其他工具能完成了。

可以使用mysql客户端工具,插入一个时间,设置为datetime,尝试一下:

CREATE TABLE `t_job_record` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',

`job_name` varchar(50) NOT NULL DEFAULT '' COMMENT 'job的名称,建议使用job方法名',

`status` tinyint(2) NOT NULL DEFAULT '0' COMMENT '状态,0:未执行,1:正在执行,2:执行中断,5:执行完成',

`exec_date_start` varchar(30) NOT NULL DEFAULT '' COMMENT '执行的开始日期',

`exec_date_end` varchar(30) NOT NULL DEFAULT '' COMMENT '执行的结束日期',

`req_params` varchar(1000) NOT NULL DEFAULT '' COMMENT '原始请求参数',

`job_params` varchar(500) NOT NULL DEFAULT '' COMMENT '执行job的参数',

`remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注,如执行中的简要描述',

`update_times` int(11) NOT NULL DEFAULT '0' COMMENT '更新该记录的次数',

`add_ip` varchar(32) NOT NULL DEFAULT '' COMMENT '请求的原始ip',

`exec_server_ip` varchar(32) NOT NULL DEFAULT '' COMMENT '执行任务的ip',

`req_server_ip` varchar(32) NOT NULL DEFAULT '' COMMENT '请求执行机器ip',

`job_end_time` datetime() NOT NULL DEFAULT '1970-01-01

00:00:00' COMMENT 'job执行的结束时间,开始时间为create_time',

`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP

COMMENT '创建时间',

`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

COMMENT '修改时间',

PRIMARY KEY (`id`),

KEY `exec_date` (`exec_date_start`,`job_name`),

KEY `idx_create_time` (`create_time`),

KEY `idx_update_time` (`update_time`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO t_job_record SET

job_name = '999', job_end_time = '2017-10-27 12:15:42.664' ;

发现插入后,job_end_time ='2017-10-27 12:15:43';不满足需求,于是更改时间格式为datetime(3),保留3位小数

ALTER TABLE t_job_exec_record CHANGE `job_end_time`

`job_end_time` DATETIME(3) DEFAULT '1970-01-01

00:00:00.000' NOT NULL COMMENT 'job执行的结束时间,开始时间为create_time';

然后再进行相同插入,即可完成毫秒数时间的写入。

可以使用直接插入的方式进行记录后,就是考虑怎样使用工具进行完成插入了。

//得到毫秒时间字符串,然后插入

String dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").format(new Date());

//插入数据库

useGeneratedKeys="true" keyProperty="id">

INSERT INTO

t_job_record SET job_name = #{jobName}

,job_end_time =

#{jobEndTime}

如此,便可以记录准确的时间了。

当然,还有另外的法子,那就是将该时间设置为 varchar 或者 char, 然后再以字符串形式写入即可。

另附注: 记录金额时,一定要使用 decimal 而非 float 或者 double 或者使用整数来记录,然后在代码中转换格式,因为decimal会更精确。

由于特殊需求场景出现,记录一下当留恋吧。

mysql 插入毫秒数据_【转载】怎样在mybatis里向mysql中插入毫秒数的时间?相关推荐

  1. access mysql 同步更新数据_[access 数据库同步]Access数据库到Mysql数据库实时更新

    项目目标: 首先是将Access数据库中的大量数据(已经存好的原有百万级数据)转存到mysql数据库中,然后,随着Access中数据的增加,要同步更新mysql数据库,更新周期自定. 思路:一开始的转 ...

  2. mysql 查找相似数据_数据库存储引擎大揭秘,不看不知道这里面的骚操作可真多!...

    吊打各种树这篇文章 带大家学习一遍数据结构中的各种树,对数据结构还不够熟悉的同学,那篇文章可以作为基础入门,我画了很多图理解起来不困难,建议回头先学习下那篇文章,更容易理解本文要讲的内容. 文章里有提 ...

  3. linux下,MySQL默认的数据文档存储目录为/var/lib/mysql。

    0.说明 Linux下更改yum默认安装的mysql路径datadir. linux下,MySQL默认的数据文档存储目录为/var/lib/mysql. 假如要把MySQL目录移到/home/data ...

  4. mysql更新写入数据_七、MySQL插入、更新与删除数据

    存储在系统中的数据是数据库管理系统(DBMS)的核心,数据库被设计用来管理数据的存储.访问和维护数据的完整性.MySQL中提供丰富的数据管理语句,包括插入数据的INSERT.更新数据的UPDATE以及 ...

  5. mysql 多租户设计_[转载]数据层的多租户浅谈(SAAS多租户数据库设计)

    原文:http://www.ibm.com/developerworks/cn/java/j-lo-dataMultitenant/index.html 在上一篇"浅析多租户在 Java 平 ...

  6. Oracle中如何用一个表的数据更新另一个表中的数据_转载

    文章目录 声明 一 准备阶段 1.建表语句 2.插入数据 3.两张表如下图 二 sql查询 1. 最容易想到的办法:通过子查询 ,直接 update ,如下: 2. 加入限制条件,对于 table1中 ...

  7. mysql数据库uuid函数_[转载]MySQL UUID() 函数

    目录 文/温国兵 一 引子 在 MySQL 中,可以有如下几种途径实现唯一值: 自增序列 UUID() 函数 程序自定义 UUID 基于 16 进制,由 32 位小写的 16 进制数字组成,如下: a ...

  8. 缓冲多少数据_聊点深的:解析MySQL,看看InnoDB 缓冲池(buffer pool) 工作原理

    缓冲池的用处 对于使用 InnoDB 作为存储引擎的表来说,不管是用于存储用户数据的索引,还是各种系统数据,都是以页的形式存放在表空间中的,而所谓的表空间只是 InnoDB 对文件系统上一个或几个实际 ...

  9. mysql随机不连续数据_用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串...

    用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串 前言: RAND函数,返回在范围0到1.0内的随机浮点值.如果一个整数参数N被指定,它被用作种子值. 一,朋友问题描述如下 ...

最新文章

  1. freemarker获取封装类中对象的属性(六)
  2. linux基础Samba服务和nginx服务
  3. c语言必背数据结构_数据结构(C语言)考试重点必背
  4. 工业级光纤收发器如何正确使用和维护?
  5. 莱比锡爆料:《星际争霸2》估计明年也没戏
  6. mysql6默认什么字符集_mysql默认字符集问题
  7. 从入门到精通进阶篇 - 设置负载阶梯式压测场景(详解教程)
  8. C++ Struct和Union区别
  9. api调用实例python_调用阿里云API 的demo示例(java/python)
  10. steam授权_恐怖游戏爱好者的福音!十一月Steam上最值得玩的恐怖游戏
  11. 在matlab中,简单地利用RS485协议对伺服电机进行控制
  12. 3d人体智能测试软件,三维人体解剖软件(3dbody)
  13. 谷歌浏览器无法连接到网络的解决办法
  14. ts视频合并---P站
  15. linux桌面只运行浏览器,4个Linux桌面上的轻量级图像浏览器
  16. java spring 中 每小时一次_spring 定时任务的 执行时间设置规则
  17. 今日早报 每天一分钟知晓天下事 3-13
  18. 佳明比华为的手表好在哪
  19. 如何创建一个微信公众号(手把手、超详细)
  20. yama搜集的超超…全的下载音效的网站,持续更新

热门文章

  1. python抓取贴吧_python抓取百度贴吧-校花吧,网页图片
  2. python怎么返回上一行代码_Python实现判断一行代码是否为注释的方法
  3. postgre 生成数据库html文档_postgresql数据库导入和导出CSV格式
  4. 无差异曲线matlab算法,引入Matlab提高经济类线性代数应用能力
  5. windows安装zabbix客户端
  6. 菜鸟教程html图片自动播放,HTML img 标签 | 菜鸟教程
  7. matlab出如何从fig中获取数据,如何从MATLAB的fig文件中提取原始数据?
  8. Linux pwn入门教程,i春秋linux_pwn入门教程复现之栈溢出基础
  9. python socket多线程 获取朋友列表_python中的(多线程)套接字列表/数组
  10. HTTP----HTTP2.0新特性