在网上找了好久,不是方法过时,就是转的类型不匹配String riqi=((ZiChanLeiBieGuanLi)jf).goumairiqi.getText();
DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Date day = null;
try {
    day = df.parse(riqi);
} catch (ParseException ex1) {
}
PreparedStatement写的SQL语句内含有 ?
用setDate(1,day);
语法不给通过

解决方案 »

  1.   

    DateFormat df=DateFormat.getDateInstance();
    多查查API。这些都有的。
      

  2.   

    其实我建议是都用VARCHAR类型的。。这样传也好传
      

  3.   

    方法有2种,第一种简单,但并不通用,因为不同系统的默认日期格式是不一样的。
    推荐第二种    PreparedStatement p = ...
        String str = "2008-12-13";
    // 方法1
        p.setDate(1, java.sql.Date.valueOf(str));
    // 方法2
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        java.util.Date d = null;
        try {
          d = df.parse(str);
        } catch (ParseException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
        if (d != null) {
          p.setDate(1, new java.sql.Date(d.getTime()));
        }
      

  4.   

    用PreparedStatement 报了个没有执行可选特性,然后就用Statement写
    程序是可以执行成功,但是日期和输入的不一样.......
    s.executeUpdate("insert into gudingzichan(zichanName,zichanleibie,zichanxinghao,zichanmoney,zichanday,zichanzhuangtai,zichanshiyongzhe,beizhu) values('"+mingchen+"','"+leibie+"','"+xinghao+"',"+jiazhi+","+new java.sql.Date(d.getTime())+",'"+zhuangtai+"','"+shiyongzhe1+"','"+beizhu1+"')");输2007-12-22  数据库里添加的1905-5-22  郁闷了
      

  5.   

    日期必须用PreparedStatement.setDate来设置
    没有执行可选特性这个是啥?贴上来看看,至少是哪一句报这个错误?
      

  6.   

    代码已经该了...现在用Statement写了!哎~~~
    日期不能用Statement?
      

  7.   

    如果你只是针对某个数据库,某个操作系统,并且语言也是固定的,那么用Statement也可以。
    否则不行。即使你本地能用,传到其它操作系统上,就不能用了!
      

  8.   

    java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
    at sun.jdbc.odbc.JdbcOdbc.SQLBindInParameterDate(JdbcOdbc.java:809)
    at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setDate(JdbcOdbcPreparedStatement.java:824)
    at project.XinXiXiouGaiJianTingQi.actionPerformed(XinXiXiouGaiJianTingQi.java:44)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
      

  9.   

    s.setDate(5,new java.sql.Date(d.getTime()));这句的问题
      

  10.   

    忘了提醒你了。 
    ODBC 不支持 setDate(); 哈哈哈
    你换 JDBC 吧!!!
      

  11.   

    数据库中使用的是datetime,但是逆向后生成的却是TimeStamp,怎么解决?