Data truncation: Incorrect datetime value时间入库错误

3 篇文章 0 订阅
1 篇文章 0 订阅

Eclipse报错信息:Data truncation: Incorrect datetime value: ‘’ for column ‘pdate’ at row 1

在开发一个网上商城时,实现保存商品的方法,无法往数据库商品表插入数据,报错信息显示插入的数据格式不对-- ‘pdate’


错误原因

  1. java中Date类型默认是格林尼治时间,对应数据表使用的是datetime类型
  2. 我们引入的mysql的jar包,数据库驱动mysql-connector-java封装了将java的Date类型的格林尼治时间转换为‘yyyy-MM-dd HH:mm:ss’的功能。对应的数据表使用的是date类型
  3. 当我们的MySQL版本和驱动mysql-connector-java的jar包版本一致才能够转换成功(我的mysql版本为5.6,驱动是5.1.7)

解决方案

  1. 更改数据库版本与jar包一致
  2. 对pdate使用SimpleDateFormat进行转换,转换成和数据库一致的格式:yyyy-MM-dd hh:mm:ss

我们采用解决方案2,现展示修改前后的代码

  • 修改前
// 将提交的数据添加到数据库中.
		product.setPdate(new Date());
  • 修改后
// 将提交的数据添加到数据库中.
		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		String format = sf.format(new Date());
		Date parse = sf.parse(format);
		System.out.println("1:"+new Date());
		System.out.println("2:"+parse);
		product.setPdate(parse);

大功告成,希望有所帮助~

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值