Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.sql.SQLException:无法转换值';2020-08-16 17:33:21.690';从第18列到时间戳_Java_Mysql - Fatal编程技术网

java.sql.SQLException:无法转换值';2020-08-16 17:33:21.690';从第18列到时间戳

java.sql.SQLException:无法转换值';2020-08-16 17:33:21.690';从第18列到时间戳,java,mysql,Java,Mysql,我得到以下例外。但很少有行能够从结果集中获取值并能够映射到JavaPOJO。有人能帮我调试一下吗 java.sql.SQLException: Cannot convert value '2020-08-16 17:33:21.690' from column 18 to TIMESTAMP. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) at com.mysql.jdbc.SQ

我得到以下例外。但很少有行能够从结果集中获取值并能够映射到JavaPOJO。有人能帮我调试一下吗

java.sql.SQLException: Cannot convert value '2020-08-16 17:33:21.690' from column 18 to TIMESTAMP.
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
        at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1336)
        at com.mysql.jdbc.BufferRow.getTimestampFast(BufferRow.java:575)
        at com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:6686)
        at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:6005)
        at com.mysql.jdbc.ResultSetImpl.getObject(ResultSetImpl.java:4961)
        at com.mysql.jdbc.ResultSetImpl.getObject(ResultSetImpl.java:5011)
        at com.freeware.gridtag.DBGrid.getColumnValue(DBGrid.java:712)
        at com.freeware.gridtag.DBGrid.drawGridWithOutColumns(DBGrid.java:2550)
        at com.freeware.gridtag.DBGrid.doEndTag(DBGrid.java:600)
        at org.apache.jsp.mainReport_jsp._jspService(mainReport_jsp.java:725)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
  
Caused by: java.lang.NumberFormatException: 0000_15975991715696�8SMPPMTTX2020-08-16 17:33:21.647
TRAFFIC-SPLIT2020-08-16 19:13:21.690Venu-Traffic-Split-On-net2020-08-16 17:52:41.877311110
             HANDSET_ACK2020-08-16 17:33:21.6902020-08-16 17:33:21.6902020-08-16 17:52:40.000lid:1915976003605490 sub:001 dlvrd:001 submit date:2008161752 done date:2008161752 stat:DELIVRD err:000 text:3310
        at com.mysql.jdbc.StringUtils.getInt(StringUtils.java:756)
        at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1114)
        ... 54 more


感谢您的帮助

MySQL 5.6.4之前的版本除外,该版本存储时没有微秒

我相信@liuguoshun最典型的例子是:

mysqld是5.5。我不知道这是什么版本。 mysqld具有时区='+08:00'和sql模式=''的设置。允许零日期。 gh ost正在主主机上运行,连接到主mysqld。 示例表有一个时间戳字段create_time,默认值为0/'0000-00-00…'。由于默认设置和更新时无,因此在更新行时不会自动修改此值。 示例表只有一行,create_time='0000-00-00:00:00'。 mysqlslap正在使用update test11 set counter=counter+1(其中id=1)更新这一行,因此不会显式更新create_time。 gh ost正在向表中添加一个新列,但未指定要创建的更改时间:add column name varchar(1) (假设)gh ost在解析主机的二进制日志时,看到更新的行事件,并在将更新应用到新的_test11_gho表时,将后映像创建时间“0000-00-00 00:00:00:00”(但它以5.5行事件表示,我不知道,0?)转换为“1970-01-01 08:00:00+0800 CST”


在本例中,create_time应该只从test11复制到_test11_gho,而不做任何修改,但实际上是这样。我希望这足够让@shlomi noach知道下一步该向@liuguoshun索取什么。

除了MySQL 5.6.4之前的版本之外,在MySQL 5.6.4之前,它的存储时间没有微秒

我相信@liuguoshun最典型的例子是:

mysqld是5.5。我不知道这是什么版本。 mysqld具有时区='+08:00'和sql模式=''的设置。允许零日期。 gh ost正在主主机上运行,连接到主mysqld。 示例表有一个时间戳字段create_time,默认值为0/'0000-00-00…'。由于默认设置和更新时无,因此在更新行时不会自动修改此值。 示例表只有一行,create_time='0000-00-00:00:00'。 mysqlslap正在使用update test11 set counter=counter+1(其中id=1)更新这一行,因此不会显式更新create_time。 gh ost正在向表中添加一个新列,但未指定要创建的更改时间:add column name varchar(1) (假设)gh ost在解析主机的二进制日志时,看到更新的行事件,并在将更新应用到新的_test11_gho表时,将后映像创建时间“0000-00-00 00:00:00:00”(但它以5.5行事件表示,我不知道,0?)转换为“1970-01-01 08:00:00+0800 CST”

在本例中,create_time应该只从test11复制到_test11_gho,而不做任何修改,但实际上是这样。我希望这足够让@shlomi noach知道下一步该向@liuguoshun索取什么