mysql timestamp毫秒_MySQL的Timestamp插入丢失毫秒的问题
昨天写项目的时候,因为加密的时候涉及到了数据库的一个timestamp类型的字段,写到后面发现生成的密文和接收到的密文死活对不上,唉。
今天吃完午饭看了看,写了个测试方法,
@Test
public void testAddUser() throws Exception {
User user = new User();
user.setAppOpenid("openId1");
user.setSessionKey("sessionKey");
user.setName("我是nic发kName");
user.setNameSearch(SearchUtils.getSearchText("我是nic发kName"));
user.setWeixinNickname("nickName");
user.setSex(1);
user.setAddress("江苏省南京市江宁区");
Date date = new Date();
Timestamp ts = new Timestamp(date.getTime());
user.setCreateTime(ts);
user.setHeaderTimestamp(date.getTime() / 1000);
// 随机生成盐值
int salt = LoginUtils.getSalt();
user.setSalt(salt);
user.setLastTime(ts);
int nums = userDao.addUser(user);
logger.info("nums = " + nums);
Map map = userDao.selectSaltAndLastTime(user.getuId());
System.out.println("map = " + map);
System.out.println("ts = " + ts);
System.out.println("map.last_time = " + map.get("last_time"));
}
上面的方法主要是先把当前时间转换成java.sql.Timestamp类型,然后插入一条记录,接着获取刚刚插入的记录,发现从数据库查询出来的last_time和当前时间竟然对不上。难怪密文一直对不上。
map = {salt=1870360469, last_time=2018-12-02 14:39:32}
ts = 2018-12-02 14:39:32.91
map.last_time = 2018-12-02 14:39:32
看看打印出来的sql语句,发现往数据库插入的时候还是有毫秒数的。
16.png
看看数据库,发现毫秒数没了。再看看数据库的表字段属性,发现timestamp的长度设置为0。问题就出在这了,只需要把timestamp字段的长度设置为3,就可以保存毫秒数了。
mysql timestamp毫秒_MySQL的Timestamp插入丢失毫秒的问题相关推荐
- mysql timestamp 用法_mysql之TIMESTAMP(时间戳)用法详解
TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如: 1.在创建新记录和修改现有记录的时候都对这个数据列刷新: TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON ...
- mysql timestamp 默认_MySQL数据库TIMESTAMP怎么设置默认值 | 学步园
MySQL数据库TIMESTAMP设置默认值新手技术人员对他感到很陌生,不知道该怎么设置.下面学步园小编来讲解下MySQL数据库TIMESTAMP怎么设置默认值? MySQL数据库TIMESTAMP怎 ...
- mysql timestamp 前一天_mysql之TIMESTAMP(时间戳)用法详解
二.TIMESTAMP列类型 TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示. TIMESTAMP值显示尺寸的格式如下表所示: "完整" ...
- mysql timestamp 转型_MySQL的timestamp类型自动更新问题【转】
今天建了一个表,里面有一个列是timestamp类型,我本意是在数据更新时,这个字段的时间能自动更新.岂知对这个类型的值还不甚了解,导致出错.发现这个字段只是在这行数据建立的时候有值,在更新的却无变化 ...
- mysql 存储过程 脚本_mysql利用存储过程插入大量数据脚本
1.检查是否开启二进制日志 #查看是否开启二进制日志,ON表示开启,OFF表示没有开启 show variables like'log_bin_trust_function_creators'; #若 ...
- mysql重复写入_MYSQL避免重复插入记录的三种方法
方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用: insert ignore into table_name(email ...
- mysql精确到毫秒_mysql 时间类型精确到毫秒、微秒及其处理
一.MySQL 获得毫秒.微秒及对毫秒.微秒的处理 MySQL 较新的版本中(MySQL 6.0.5),也还没有产生微秒的函数,now() 只能精确到秒. MySQL 中也没有存储带有毫秒.微秒的日期 ...
- mysql 超长字段_Mysql命令行插入字段超长不报错,而jdbc报错问题分析
异常信息 exception.ServiceException: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long ...
- mysql数据回退_mysql DML 数据插入,删除,更新,回退
mysql插入,删除,更新地址:https://wenku.baidu.com/view/194645eef121dd36a32d82b1.html http://www.cnblogs.com/st ...
- mysql 事务批量_mysql事务批量插入
操作mysql数据库时如果有大量sql操作需要控制要么一起成功,要么一起失败的时候,就需要用到事务操作,一旦使用事务在捕获到失败后就需要 rollback 回滚操作,如果不进行错误检测,可能会导致部分 ...
最新文章
- Bert系列(三)——源码解读之Pre-train
- python玩装虎牙直播自动登录发弹幕
- 教你修改Linux下高并发socket最大连接数所受的各种限制
- poj 2763 Housewife Wind
- 大一大专计算机考试题型,大专,计算机一级考试考什么内容,麻烦详细点,谢谢。...
- 离散信号的希尔伯特变换的计算公式_希尔伯特变换和瞬时频率问题--连载(二)...
- update-rc.d 更新 Linux 系统启动项 命令 用法详解
- Maxcompute造数据-方法详解
- 9、两个栈实现队列(Python)
- 破而后立,破除陈旧,认识自我,而后顶天立地!
- AWSome Day(上海站)参会记录
- DIY智能家居语音助理——语音智控万物
- python是一种解释型、面向什么的计算机程序设计语言_python语言是一种什么类型...
- WEB APP、HYBRID APP与NATIVE APP 差异分析
- PS 2019 | Photoshop CC 2019 的安装激活
- python爬虫 获取学信网 学校与对应专业信息
- 杭电AI学霸班:考研上岸3清北8浙大,还没毕业年薪拿百万
- Python格式化JSON文件
- Eclipse护眼背景色图文设置
- 如何做一个基于微信校园跑腿小程序系统毕业设计毕设作品
热门文章
- 共享打印机时,出现无法访问,你可能没有权限使用网络资源“
- 【手游】手游行业专业相关知识储备
- matlab中muw,matlab – 获取属于凸包的点
- elasticsearch搜索报错ElasticsearchException: failed to map source
- java获取文件名格式 / java获取文件名后缀
- 如何查看你的浏览器的Flash版本
- ElasticSearch: 使用Java Api 操作 ES
- 微信抢红包的方案_高并发10-微信抢红包实现
- 学习Python必备的8本书
- 为什么顶级程序员都有超强逆商?顶级程序员马化腾在艰难的时候,是如何度过的?