System.out.println-->insert into card_info(card_index,serial_no,balance,mk_date) values (3,'WTSW000000003',0,now())
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data truncated for column 'mk_date' at row 1
at com.mysql.jdbc.SQLError.convertShowWarningsToSQLWarnings(SQLError.java:715)
at com.mysql.jdbc.MysqlIO.scanForAndThrowDataTruncation(MysqlIO.java:2978)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1764)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3025)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1147)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1070)
at com.telconfuser.func.Registerfor101.insertOneCardTodb(Registerfor101.java:149)
at com.telconfuser.func.RegisterServlet101call.doPost(RegisterServlet101call.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)提示的是错误原因是字段太长,但mk_date是date类型的啊,用now()函数没问题啊。怎么回事啊?

解决方案 »

  1.   

    insert into card_info(card_index,serial_no,balance,mk_date) values (3,'WTSW000000003',0,date(now())) 
      

  2.   

    insert into card_info(card_index,serial_no,balance,mk_date) values (3,'WTSW000000003',0,
    date(now())) 
    or
    insert into card_info(card_index,serial_no,balance,mk_date) values (3,'WTSW000000003',0,
    date_format(now(),'%Y%m%d')) 
      

  3.   

    insert into card_info(card_index,serial_no,balance,mk_date) values (3,'WTSW000000003',0,
    date(now()))
    or
    insert into card_info(card_index,serial_no,balance,mk_date) values (3,'WTSW000000003',0,
    date_format((now(),'%Y%m%d'))
      

  4.   

    #楼上的错误语句中对字段mk_date的插入,未做数据转换:now()是datetime类型
    错误:
    insert into card_info(card_index,serial_no,balance,mk_date) values (3,'WTSW000000003',0,now()) 
    正确:
    insert into card_info(card_index,serial_no,balance,mk_date) values (3,'WTSW000000003',0,date(now()))