java.sql.SQLException:value;'0000-00-00'can not be represented as java.sql.date

问题描述:

数据表中有记录的time字段(属性为timestamp)其值为:“0000-00-00 00:00:00”

程序使用select 语句从中取数据时出现以下异常:

java.sql.SQLException:Value ‘0000-00-00‘ can not be represented as java.sql.Date

后查资料发现 “0000-00-00 00:00:00”在mysql中是作为一个特殊值存在的

但 java.sql.Date 将其视为 不合法的值 格式不正确

解决办法:

给jdbc   url加上   zeroDateTimeBehavior参数:

datasource.url=jdbc:mysql://localhost:3306/pe?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior=convertToNull

zeroDateTimeBehavior=round是为了指定MySql中的DateTime字段默认值查询时的处理方式;默认是抛出异常,

对于值为0000-00-00   00:00:00(默认值)的纪录,如下两种配置,会返回不同的结果:

zeroDateTimeBehavior=round   0001-01-01   00:00:00.0

zeroDateTimeBehavior=convertToNull   null

java.sql.SQLException:value;'0000-00-00'can not be represented as java.sql.date

时间: 2024-11-05 15:58:40

java.sql.SQLException:value;'0000-00-00'can not be represented as java.sql.date的相关文章

nested exception is java.sql.SQLException: IO 错误

1.错误描述 (mx.messaging.messages::ErrorMessage)#0 body = (null) clientId = "18CE3B03-9709-9DA8-7634-340C23317FDD" correlationId = "3161DF25-D056-D694-E5CF-963E4FE036D9" destination = "waitController" extendedData = (null) faultC

解决sqoop导入报错:Caused by: java.sql.SQLException: Protocol violation

报错信息: 2017-06-15 15:02:15,374 INFO [main] org.apache.hadoop.mapred.MapTask: Ignoring exception during close for [email protected]0 java.io.IOException: java.sql.SQLException: Protocol violation at org.apache.sqoop.mapreduce.db.DBRecordReader.close(DB

java.sql.SQLException: Access denied for user 'scott'@'localhost' (using password: YES)

今天用eclipse连接一下数据库,出现此异常. java.sql.SQLException: Access denied for user 'scott'@'localhost' (using password: YES) JAVA中链接类 解决办法:发现数据库好久不用,用户的登录密码记错了. java.sql.SQLException: Access denied for user 'scott'@'localhost' (using password: YES)

Oracle java.sql.SQLException: 数字溢出

六月 30, 2016 5:47:47 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions信息: Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]六月 30, 2016 5:47:47 下午 org.springf

Mysql-提示java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 7 to TIMESTAMP.

在Mysql数据库中使用DATETIME类型来存储时间,使用JDBC中读取这个字段的时候,应该使用 ResultSet.getTimestamp(),这样会得到一个java.sql.Timestamp类型的数据.在这里既不能使用 ResultSet.getDate(),也不能使用ResultSet.getTime(),因为前者不包括time数据,后者不包括date数据. 但是在使用ResultSet.getTimestamp()时也不是完全安全的,例如,当数据库中的TIMESTAMP类型的字段值

Caused by: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

错误信息如下: Caused by: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 原因如下:是因为数据表中字段类型与对象中的属性类型不一致.比如在我的数据表中是datetime类型,正常来说,对象中应该是Date类型,但是本次在对象中却是String类型. 解决办法:(1)将datetime类型修改为varchar类型,即可解决问题;(2)将Java

MySQL 关于 Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestam

处理Sql查询遇到这样一个问题(数据库是MySQL),有个字段定义类型是datetime,且非空无默认值, 通过PHPMyAdmin界面填充测试数据的时候没有理会这个字段,看到个小警告,插入成功, 但是在取数据的时候出现这样一个错误: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常,就是所见的:

mysql解决Value ‘0000-00-00 00:00:00’ can not be represented as java.sql.Timestamp

同步发布:http://www.yuanrengu.com/index.php/mysqlsolvetimestamp.html 在使用mysql时,如果数据库中的字段类型是timestamp,默认为0000-00-00,会发生异常:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp. 解决办法如下: 给数据库的jdbc.url加上zeroDateTimeBehavior参数,如下: jdbc.url=

解决提示Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp;的方法

Mysql在进行查询时报了一个 Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp; 这样的错误,这是因为在默认插入一个类型为timestamp的时间时它会将'0000-00-00 00:00:00'插入,但是在数据库定义时又因为设计是非空的timestamp类型的时间,所以查询时就会出错,并且mysql的时间范围是:'1000-01-01 00:00:00' 到 '9999-12-31 23:59:5

“java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp”

最近在项目中使用hibernate查询时,总报错“java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp”,但是直接在Navicat Premium中运行sql可以正常得到值,无任何错误,后来仔细分析下日志信息,发现返回的数据中含有字段值为0000-00-00 00:00:00,而在hibernate将结果映射成实体时,会认为此种格式不是正确的java.sql.Timestamp