昨天写项目的时候,因为加密的时候涉及到了数据库的一个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插入丢失毫秒的问题相关推荐

  1. mysql timestamp 用法_mysql之TIMESTAMP(时间戳)用法详解

    TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如: 1.在创建新记录和修改现有记录的时候都对这个数据列刷新: TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON ...

  2. mysql timestamp 默认_MySQL数据库TIMESTAMP怎么设置默认值 | 学步园

    MySQL数据库TIMESTAMP设置默认值新手技术人员对他感到很陌生,不知道该怎么设置.下面学步园小编来讲解下MySQL数据库TIMESTAMP怎么设置默认值? MySQL数据库TIMESTAMP怎 ...

  3. mysql timestamp 前一天_mysql之TIMESTAMP(时间戳)用法详解

    二.TIMESTAMP列类型 TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示. TIMESTAMP值显示尺寸的格式如下表所示: "完整" ...

  4. mysql timestamp 转型_MySQL的timestamp类型自动更新问题【转】

    今天建了一个表,里面有一个列是timestamp类型,我本意是在数据更新时,这个字段的时间能自动更新.岂知对这个类型的值还不甚了解,导致出错.发现这个字段只是在这行数据建立的时候有值,在更新的却无变化 ...

  5. mysql 存储过程 脚本_mysql利用存储过程插入大量数据脚本

    1.检查是否开启二进制日志 #查看是否开启二进制日志,ON表示开启,OFF表示没有开启 show variables like'log_bin_trust_function_creators'; #若 ...

  6. mysql重复写入_MYSQL避免重复插入记录的三种方法

    方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用: insert ignore into table_name(email ...

  7. mysql精确到毫秒_mysql 时间类型精确到毫秒、微秒及其处理

    一.MySQL 获得毫秒.微秒及对毫秒.微秒的处理 MySQL 较新的版本中(MySQL 6.0.5),也还没有产生微秒的函数,now() 只能精确到秒. MySQL 中也没有存储带有毫秒.微秒的日期 ...

  8. mysql 超长字段_Mysql命令行插入字段超长不报错,而jdbc报错问题分析

    异常信息 exception.ServiceException: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long ...

  9. mysql数据回退_mysql DML 数据插入,删除,更新,回退

    mysql插入,删除,更新地址:https://wenku.baidu.com/view/194645eef121dd36a32d82b1.html http://www.cnblogs.com/st ...

  10. mysql 事务批量_mysql事务批量插入

    操作mysql数据库时如果有大量sql操作需要控制要么一起成功,要么一起失败的时候,就需要用到事务操作,一旦使用事务在捕获到失败后就需要 rollback 回滚操作,如果不进行错误检测,可能会导致部分 ...

最新文章

  1. Bert系列(三)——源码解读之Pre-train
  2. python玩装虎牙直播自动登录发弹幕
  3. 教你修改Linux下高并发socket最大连接数所受的各种限制
  4. poj 2763 Housewife Wind
  5. 大一大专计算机考试题型,大专,计算机一级考试考什么内容,麻烦详细点,谢谢。...
  6. 离散信号的希尔伯特变换的计算公式_希尔伯特变换和瞬时频率问题--连载(二)...
  7. update-rc.d 更新 Linux 系统启动项 命令 用法详解
  8. Maxcompute造数据-方法详解
  9. 9、两个栈实现队列(Python)
  10. 破而后立,破除陈旧,认识自我,而后顶天立地!
  11. AWSome Day(上海站)参会记录
  12. DIY智能家居语音助理——语音智控万物
  13. python是一种解释型、面向什么的计算机程序设计语言_python语言是一种什么类型...
  14. WEB APP、HYBRID APP与NATIVE APP 差异分析
  15. PS 2019 | Photoshop CC 2019 的安装激活
  16. python爬虫 获取学信网 学校与对应专业信息
  17. 杭电AI学霸班:考研上岸3清北8浙大,还没毕业年薪拿百万
  18. Python格式化JSON文件
  19. Eclipse护眼背景色图文设置
  20. 如何做一个基于微信校园跑腿小程序系统毕业设计毕设作品

热门文章

  1. 共享打印机时,出现无法访问,你可能没有权限使用网络资源“
  2. 【手游】手游行业专业相关知识储备
  3. matlab中muw,matlab – 获取属于凸包的点
  4. elasticsearch搜索报错ElasticsearchException: failed to map source
  5. java获取文件名格式 / java获取文件名后缀
  6. 如何查看你的浏览器的Flash版本
  7. ElasticSearch: 使用Java Api 操作 ES
  8. 微信抢红包的方案_高并发10-微信抢红包实现
  9. 学习Python必备的8本书
  10. 为什么顶级程序员都有超强逆商?顶级程序员马化腾在艰难的时候,是如何度过的?