如果你的日期以字符串形式存储就不会有这样的问题,
Java 操作数据库是通过连接工厂实现,你提交的数据操作语句是一组字符串
而数据库又是日期类型。
若非要以日期类型存储,先观察取得的系统主机日期是否符合实际日期,
再将日期转换成数据库存储的字符串格式(例:2002-09-13或2002/09/13),
合成SQL提交语句的时候用单引号将其括起来(例:'2002-09-13'),然后提交,
再检查数据库中的日期是否正确,祝你成功

解决方案 »

  1.   

    用参数化插入的方法最简便了,用
    PreparedStatement带参数,然后setDate()这样传入的参数为date型,格式工作由java和数据库自己去做。
      

  2.   

    public java.sql.Timestamp getCurrentTimestamp()
      {
        java.util.Date ud = new java.util.Date();
        java.sql.Timestamp now = new java.sql.Timestamp(ud.getTime());
        return now;
      }
      

  3.   

    然后用
    把这个日期插入就可以了
      public static java.sql.Date getCurrentDate()
      {
        java.util.Date ud = new java.util.Date();
        java.sql.Date now = new java.sql.Date(ud.getTime());
        return now;
      }
      public static java.sql.Time getCurrentTime()
      {
        java.util.Date ud = new java.util.Date();
        java.sql.Time now = new java.sql.Time(ud.getTime());
        return now;
    }
    得到不同格式
    对应prepareStatement的setTimestamp(),setDate(),setTime()方法
      

  4.   

    有你们说的烦吗?如果是Oracle,合成的sql串为:insert into tablename(mydate) values (to_date('2002-9-13','yyyy-mm-dd')),如果是系统日期就用sysdate代替to_date('2002-9-13','yyyy-mm-dd')就可以。
    如果是sqlserver、sybase和mysql:insert into tablename(mydate) values ('2002-9-13'),对于系统日期看各自数据,
    那样做就万事大吉了,干吗要java去做。
      

  5.   

    向Date型的字段中插入字符串就行了:
    String currentDate = new java.sql.Date().toLocaleString();//当前时间
    Statement stmt=conn.createStatement() ;
    stmt.executeUpdate("insert into table(date) values('" + currentDate + "')");