我用SQL。date应该没有问题啊

解决方案 »

  1.   

    stat.setDate() 方法需要java.sql.Date 才可以,java.util.Date 是不行的
    你可以这样转一下ps.setDate(8,new java.sql.Date(dateUtil.getTime()));就可以了。
    记得, java.sql.Date 是 java.util.Date 的子类, 父类是不能转化子类的。
      

  2.   

    JAVA2000-net 我用的是
     java.util.Date   date; 
    try   { 
    date   =   (java.util.Date)   datef.parse(ddate); 
    Timestamp   tt=new   Timestamp(date.getTime()); 
          System.out.println("ddddd"+date); 
    ps.setTimestamp(8,tt); 
    }   catch   (ParseException   e)   { 
    //   TODO   自动生成   catch   块 
    e.printStackTrace(); 

    我在页面输入2007-11-12   15:11:0.000     插入的时候提示     从字符串转换为   datetime   时发生语法错误。 
      换成这个   java.sql.Date   date; 
    try   { 
    date   =   (java.sql.Date)   datef.parse(ddate); 
    Timestamp   tt=new   Timestamp(date.getTime()); 
          System.out.println("ddddd"+date); 
    ps.setTimestamp(8,tt); 
    }   catch   (ParseException   e)   { 
    //   TODO   自动生成   catch   块 
    e.printStackTrace(); 

    我这2个方法试了都报错
      

  3.   

    我晕,你的错误是
    date       =       (java.sql.Date)       datef.parse(ddate);   
      

  4.   

    1 你的datef.parse(ddate); 出错了,也就是你的 datef 没有设置好
    2 .parse 返回的是 java.util.Date 你不能转为 java.sql.Date把你的 datef 贴出来看看
      

  5.   

    我换成 页面的内容是 2007-11-12 或者是 2007-11-12 12:15:0.000都报ction:java.lang.ClassCastException: java.util.Date
    java.sql.Date date;
    try {
    date = (java.sql.Date) datef.parse(ddate);
    ps.setDate(8,new java.sql.Date(date.getTime()));
    } catch (ParseException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
      

  6.   

    java.text.DateFormat   datef=java.text.DateFormat.getDateInstance();  
    java.sql.Date   date; 
    try   { 
    date   =   (java.sql.Date)   datef.parse(ddate); 
    ps.setDate(8,new   java.sql.Date(date.getTime())); 
    }   catch   (ParseException   e)   { 
    //   TODO   自动生成   catch   块 
    e.printStackTrace(); 
      

  7.   

    java.sql.Date   date; 
    try   { 
      date   = new java.sql.Date(datef.parse(ddate).getTime);  // 如果parse不报异常,应该这样写
      ps.setDate(8,date); 
    }   catch   (ParseException   e)   { 
      //   TODO   自动生成   catch   块 
      e.printStackTrace(); 
    }
      

  8.   

    建议写法
        java.sql.Date date;
        try {
          date = new java.sql.Date(datef.parse(ddate).getTime()); // 如果parse不报异常,应该这样写
        } catch (ParseException e) {
          e.printStackTrace();
          return; // 如果异常,可以选择退出
        }
        ps.setDate(8, date); // 这个放到外面
      

  9.   

     to: java2000_net 
    我在网上查的资料日期型 JDBC
    date           java.sql.Date
    datetime         java.sql.Timestamp
    timestamp       java.sql.Timestamp
    time           java.sql.Time
    year           java.sql.Date我数据库ddate字段是datetime类型 按照他说 
     java.util.Date date;
    try {
    date = (java.util.Date) datef.parse(ddate);
    Timestamp tt=new Timestamp(date.getTime());
       System.out.println("ddddd"+date);
    ps.setTimestamp(8,tt);
    } catch (ParseException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
       
      

  10.   

    你上面的代码没问题,不过请注意异常
    从字符串转换为 datetime 时发生语法错误这是那个datef.parse(ddate) 报的异常,也就是你把字符串解析成 date时发生的错误。
      

  11.   

    但是我如果用 
    java.util.Date   date; 
    try   { 
    date   =   (java.util.Date)   datef.parse(ddate); 
    Timestamp   tt=new   Timestamp(date.getTime()); 
          System.out.println("ddddd"+date); 
    ps.setTimestamp(8,tt); 
    }   catch   (ParseException   e)   { 
    //   TODO   自动生成   catch   块 
    e.printStackTrace(); 

    插入的数据格式是 2007-11-12 15:11:0.000 会报  其实 按道理 SQL2000 String类型插入到datetime 应该会自动转换吧 为什么也报    从字符串转换为 datetime 时发生语法错误
      

  12.   

    从字符串转换为 datetime 时发生语法错误
      

  13.   

    楼主怎么还没清醒啊!
    根本还没到什么数据库操作,就已经异常啦!
    还什么SQL Server 插入数据, 根本没到那一步!!java.util.Date       date;   
    try       {   
    date       =       (java.util.Date)       datef.parse(ddate);   你的程序在这一步就出异常了,后面的根本没必要分析了。先把parse解决掉System.out.println("ddddd"+date);   这一句在控制台或日志是不是根本没打印出什么 ddddd 吧!因为执行不到那里!!
      

  14.   

    我用你的方法 页面输入的是 2007-11-12 12:10:0.000还是报 从字符串转换为 datetime 时发生语法错误。 
    但是        java.sql.Date date;
                            try {
                              date = new java.sql.Date(datef.parse(ddate).getTime()); // 如果parse不报异常,应该这样写
                              System.out.println("==++=="+date);
                            } catch (ParseException e) {
                              e.printStackTrace();
                              return; // 如果异常,可以选择退出
                            }
                            ps.setDate(8, date); // 这个放到外面
                            System.out.println("==++==12211212"); 
    的 System.out.println("==++=="+date);
     System.out.println("==++==12211212"); 都可以打印