Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP解决办法

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

但是在使用ResultSet.getTimestamp()时也不是完全安全的,例如,当数据库中的TIMESTAMP类型的字段值为 ‘0000-00-00 00:00:00‘时,使用此方法进行读取,会抛出异常:Cannot convert value ‘0000-00-00 00:00:00‘ from column 1 to TIMESTAMP,这是因为JDBC不能将‘0000-00-00 00:00:00‘转化为一个为一个java.sql.Timestamp,在Java中,想创建一个java.util.Date,使其值为 ‘0000-00-00‘也是不可能的,最古老的日期应该是‘0001-01-01 00:00:00‘。

解决方案 1.String url = "jdbc:mysql://localhost:3306/test?relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull";

注意符号"&"如果不成功的话, 需要转换成特定的字符,如下表所示,即把"&"转换为&

在xml文件中有以下几类字符要进行转义替换:


<


<


小于号


&gt;


>


大于号


&amp;


&



&apos;



单引号


&quot;


"


双引号

Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP解决办法

时间: 2024-10-16 02:19:50

Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP解决办法的相关文章

JDBC连接mysql,TOMCAT错误: Cannot convert value &#39;0000-00-00 00:00:00&#39; from column 10 to TIMESTAMP

解决思路依据如下URL: http://blog.csdn.net/stail111/article/details/5640109 问题:MySQL数据库,如果数据库中日期字段为空为值为'0000-00-00 00:00:00"时,查询的时候回报:Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP 解决办法: 更改连接数据库方式 在连接:jdbc:mysql://127.0.0.1:3306/test 后

Mysql-提示java.sql.SQLException: Cannot convert value &#39;0000-00-00 00:00:00&#39; from column 7 to TIMESTAMP.

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

mybatis连接mysql查询时报Cannot convert value &#39;0000-00-00 00:00:00&#39; from column 10 to TIMESTAMP

今天在学习mybatis框架的时候遇到了一个问题:查询用户表的时候报 Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP 查看自己数据库中有一条数据: 意思是:无法将值“0000-00-00 00:00:00”转换为时间戳. 解决办法: mybatis连接mysql查询时报Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTA

类似于1.0-0.8=0.19999999999999996的解决办法

这个帖子有解决办法:http://blog.csdn.net/shenshen123jun/article/details/8957421 import java.math.BigDecimal; public class Test20150515 { public static void main(String[] args) { //System.out.println(1.0-0.8); System.out.println(new BigDecimal("1.0").subtr

svn: Can&#39;t convert string from &#39;UTF-8&#39; to native encoding: 解决办法

在linux中,svn co 或 svn up 时有中文文件名的文件的话,可能会报下面的错: [[email protected]-dev-srv1 ~]# svn upsvn: Can't convert string from 'UTF-8' to native encoding:svn: src/main/webapp/resources/js/My97DatePicker/?\229?\188?\128?\229?\143?\145?\229?\140?\133 先locale看一下系统

Convert.ChangeType不能处理Nullable类型的解决办法(转)

https://www.cnblogs.com/patrickyu/p/3211115.html 在做一个ORMapping功能的时候发现,Convert.ChangeType不能处理nullable类型,比如int?. 解决办法也很简单,贴出完整的代码(大部分代码来自网络),注意下面代码没经过完整测试,不要直接用在项目里: public delegate void SetValue<T>(T value); public static class ORMapping<T> whe

SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间---解决办法

传给数据库的时间类型的值为NULL,或者为DateTime.MinValue,或者为Convert.toDate(null),即(0001/01/01 0:00:00) 导致传到数据库的值为01年01月01日,从而导致溢出 using System; using System.Collections.Generic; using System.Data.SqlTypes; using System.Linq; using System.Text; using System.Threading.T

NSDate+Category 将日期输出为今天 09:00 or 昨天 09:00

1. 创建一个NSDate 的类别 .h 方法 -(NSString *)dateAmity; .m方法实现 -(NSString *)dateAmity { BOOL isThisYear=false,isThisMonth=false,isThisDay=false,isYesterDay=false,isTomorrow=false; NSString *str = @""; NSDate *now = [NSDate date]; NSDateComponents *nowCo

json 得到时分秒为00:00:00,拿不到时分秒 解决办法

数据库查询时间没有了时分秒的解决办法        问题出处,公司一个项目中使用动态sql方式查询Oracle数据库,在展示时Date类型字段只展示日期,无时分秒.        分析:        1.众所周知Oralce的日期类型有很多种,Date ,Timestamp等.其中Date类型对用的是java.sql.Date类型,Timestamp对用的是java.sql.Timestamp类型.这两个类型均继承自java.util.Date,其中java.sql.Date是没有时分秒的大家