java向mysql插入时间类型的数据,取出后跟插入前的值不一致

发布于 2021-11-27 07:56:29 字数 1164 浏览 761 评论 7

我再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>



document_info的表结构如下:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

虐人心 2021-12-03 04:01:50

datetime一般的需求足够了,除非需求需要用到毫秒级别的。存成long类型的数字,但是这样的话查sql的时候,不能直观的看出时间。也可以把时间存为字符串,但是这样会影响一点性能。

羁拥 2021-12-03 03:50:39

你为什么不把时间直接转换成long型保存,datetime最小单位秒

月亮是我掰弯的 2021-12-01 19:00:28

最简单的方法用string

终陌 2021-12-01 06:59:44

有解决办法么

天涯离梦残月幽梦 2021-12-01 02:51:07

回复
@码上中国博客 : datetime(3) 默认是0 只到秒

平生欢 2021-11-30 09:59:22

回复
@码上中国博客 : 数据库直接用timestamp,或BIGINT或NUMERIC(13)或DECIMAL(13)

冷清清 2021-11-28 03:40:49

datetime最小单位是秒

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文