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);

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

  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 这个错误通常是因为您正在尝试将一个错误格式的日期或时间值插入到数据库中。请确保您的日期或时间值的格式与数据库表定义的格式相匹配。您可以使用DATE_FORMAT函数将日期或时间值转换为正确的格式,以便将其插入到数据库中。另外,请确保您输入的日期或时间值是有效的日期或时间,例如,对于日期值,确保月份不超过12,日期值小于等于当月的最大日期等等。 ### 回答2: data truncation: incorrect datetime value是数据库中常见的错误之一,通常是由于时间格式不正确而导致的。 在数据库中,每个时间都有一个特定的格式,在插入数据时,如果将数据格式与数据库中已有的格式不匹配,就会发生数据截断错误。例如,如果我们将一个日期时间值存储在VARCHAR列中,那么当我们尝试将一个非日期时间字符串存储到该列中时,就会出现数据截断错误。 除了数据格式不正确,还有一些其他的原因,例如时区问题、日期格式不正确、或者数据库中存在无效的日期、时间值等。 解决这个问题的方法是要保证插入的数据格式正确,并且与数据库中的数据格式相同。我们可以在插入数据之前进行格式验证,确保要插入的数据是有效的,或者使用数据转换函数来将数据转换为数据库中支持的格式。 另外,我们还可以通过调整数据库的日期时间格式,来避免数据截断错误。比如,将数据库的日期格式改为YYYY-MM-DD HH:MI:SS,然后再插入数据,这样就能避免数据截断错误发生。 总之,数据截断错误通常是由于时间格式不正确而导致的,我们需要在插入数据之前进行格式检查,并确保插入的数据与数据库中的数据格式相同,以避免这个问题的发生。 ### 回答3: “数据截断:错误的日期时间值”是一个在数据库中经常出现的错误。此错误常常是由于尝试将一个不符合要求的日期时间值存储到数据库中而引起。 在数据库中,日期时间的格式和精度是非常严格的。如果要插入、更新或查询一个日期时间字段,该字段的值必须严格按照数据库格式要求来编写。否则就会发生“数据截断:错误的日期时间值”的错误。 通常,这种错误会在以下情况下出现: 1. 数据库中设置的日期时间格式不对:在MySQL数据库中,日期时间格式是由年、月、日、时、分、秒等组成的。如果尝试存储不符合该格式的日期时间值,则会发生“数据截断:错误的日期时间值”的错误。 2. 日期时间的值太长:有时,日期时间值可能会包含太多的数字和字符,从而超过了数据库中定义的精度。这时就需要将日期时间值截短到数据库中定义的长度以避免出现错误。 3. 数据库中定义的日期时间类型不匹配:在MySQL数据库中,有几种不同类型的日期时间字段,如DATE、TIME、DATETIME等。如果在操作数据库时,使用的字段类型不匹配,则会发生“数据截断:错误的日期时间值”的错误。 总之,“数据截断:错误的日期时间值”的错误可能会导致数据在存储、更新或查询时出现问题。因此,在使用数据库时,应当遵循数据库的日期时间格式和精度要求,以避免该错误的发生。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值