String sql= "insert into mytable (id,time) values(" + id + ", \'" + date + "\')";
你可以先打印出sql值自己看看对不对嘛。

解决方案 »

  1.   

    PreparedStatement ps=conn.parepareStatement("insert into mytable (id,time) values(?,?)");
    ps.setInt(1,id);
    ps.setDate(new Date());
    ps.executeUpdate();
    ps.close();
      

  2.   

    有两种方法,第一种是使用sql escape,日期为:{d 'yyyy-mm-dd'},时间为:{t 'hh:mm:ss'},TimeStamp为:{ts 'yyyy-mm-dd hh:mm:ss'},这种方法是JDBC借鉴ODBC的方法;你上面的可写为:
             int id=1000
    String date="2002-04-22";
    String sql= "insert into mytable (id,time) values(" +
    id+","+"{d '"date+"'}"+")";第二种方法为使用PreparedStatement,CallableStatment中的SetXXX方法
      

  3.   

    其他常用的ODBC ESCAPE用法还有:escape用法:{escape '字符'};外连接用法:{oj '外连接语法'},存储过程调用方法:{call sp_name(para_list)}和{? = call sp_name(para_list)}
      

  4.   

    方法一:如果想用当前的时间:
    String sql= "insert into mytable (id,time) values(" +id+"getdate())";
    方法二:转换的方法:
    dateStr="2004-4-24 15:52:23"
    String sql= "insert into mytable (id,time) values(" +id+"convert(datetime,'"+dateStr+"'))";
      

  5.   

    你的问题二楼的兄弟已经给你指出了,这是关键所在,date字段实际上没有取到值,就用默认值了