java向mysql插入时间类型的数据,取出后跟插入前的值不一致
我再java程序中,使用了mybatis框架,当使用java向mysql中插入时间类型的数据后,然后取出这个数据,发现取出的数据跟插入前的数据不一致了,例如,我插入数据库前的时间类型的属性转为long类型的数值为1232233454321,那么,我再使用java从数据库中去出来这个时间类型的数据,发现始终是最后三位数字变成了0,变成了1232233454000,切这个现象始终是存在的。
程序示例如下:
java代码:
Date date = new Date(); document.setCreateTime(new Timestamp(date.getTime())); documentDao.addDocument(document);
mapping中代码
<insert id="addDocument"> insert into document_info(docTitle,docAbstract,createTime) values(#{docTitle},#{docAbstract},#{createTime,jdbcType=TIMESTAMP}) </insert>
CREATE TABLE `document_info` ( `id` int(11) NOT NULL AUTO_INCREMENT, `docTitle` varchar(100) NOT NULL, `docAbstract` varchar(500) NOT NULL, `createTime` datetime NOT NULL }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
datetime一般的需求足够了,除非需求需要用到毫秒级别的。存成long类型的数字,但是这样的话查sql的时候,不能直观的看出时间。也可以把时间存为字符串,但是这样会影响一点性能。
你为什么不把时间直接转换成long型保存,datetime最小单位秒
最简单的方法用string
有解决办法么
回复
@码上中国博客 : datetime(3) 默认是0 只到秒
回复
@码上中国博客 : 数据库直接用timestamp,或BIGINT或NUMERIC(13)或DECIMAL(13)
datetime最小单位是秒