数据库为sql server 2000,要插入的字段名字为rq,字段类型是datetime(8),我从页面得到的字符串格式是: 
“2008-10-10 10:10:10”, 
现在我要把这个字符串插入到数据库中,我是这样做的, 
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.English); 
Date datetime=df.parse("2008-10-10 10:10:10"); 
java.sql.Date date=new java.sql.Date(datetime.getTime()); 
然后使用 
String sql="insert into table_name(rq) values('"+date+"')"; 
插入数据库,可是查询数据库得到的却是: 
2008-10-10 00:00:00.0,请问为什么后面的时分秒会变成了全是0的,请教一下各位大侠是什么原因, 
另外最重要的是帮我修改一下看看怎么转换才能插进去使时分秒不变成全为0,而是实际的时间。 

解决方案 »

  1.   


    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.ENGLISH); 
    try {
    Date datetime = df.parse("2008-10-10 10:10:10");
    java.sql.Date date=new java.sql.Date(datetime.getTime()); 
    System.out.println(datetime);
    System.out.println(datetime.getTime());
    System.out.println("" + date);
    } catch (ParseException e) {
    e.printStackTrace();
    }
    打印结果如果:Fri Oct 10 10:10:10 CST 2008
    1223604610000
    2008-10-10
    可见在由java.util.Date转换成java.sql.Date类型时有问题
      

  2.   

    字段类型是datetime(8),
      

  3.   

    2楼的大哥,请问是不是datetime类型长度有问题啊,那应该怎么改才能做到我说要的功能啊
      

  4.   

    使用setTimeStamp(new java.sql.TimeStamp(new Date().getTime()));
    使用java.sql.Date只有年月日的,日期部分丢失了
      

  5.   

    你可以直接将字符串日期放入insert语句中
    String sql="insert into table_name(rq) values('2008-10-10 10:10:10')"; 
      

  6.   

    你把数据库里面的长度设置长点,有个问题,你为什么不直接insert datetime
      

  7.   

    谢谢各位指点,我直接把一个string insert进去就OK了,谢谢大家啊。