从页面接收的日期 先转为java.util.date 后 在转为TimeStamp类型插入数据库
现在的问题是 转为java.util.date 后,数据为Tue Jan 01 08:00:00 CST 2013
用Timestamp startTime = new Timestamp(xxx.getTime();转后得到的数据为
2013-01-01 08:00:00.0
为何后面多了一个.0
但是查询oracle数据库里面  数据却为2013-01-01 08:00:00
求解,为何

解决方案 »

  1.   

    看看API就知道了一个与 java.util.Date 类有关的瘦包装器 (thin wrapper),它允许 JDBC API 将该类标识为 SQL TIMESTAMP 值。它通过允许小数秒到纳秒级精度的规范来添加保存 SQL TIMESTAMP 小数秒值的能力。Timestamp 也提供支持时间戳值的 JDBC 转义语法的格式化和解析操作的能力。 计算 Timestamp 对象的精度为二者之一: 19 ,其为 yyyy-mm-dd hh:mm:ss 格式下的字符数 
    20 + s ,其为 yyyy-mm-dd hh:mm:ss.[fff...] 格式下的字符数,s 表示给定 Timestamp 的标度(其小数秒精度)。
      

  2.   

    timestamp是时间戳用的类型,不过你可以转换它的格式
      

  3.   

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH:mm:ss");
    String t = sdf.format(time);
      

  4.   

    在jdk的帮助文档中写了关于这个。
    一个与 java.util.Date 类有关的瘦包装器 (thin wrapper),它允许 JDBC API 将该类标识为 SQL TIMESTAMP 值。它通过允许小数秒到纳秒级精度的规范来添加保存 SQL TIMESTAMP 小数秒值的能力。Timestamp 也提供支持时间戳值的 JDBC 转义语法的格式化和解析操作的能力。 计算 Timestamp 对象的精度为二者之一: 19 ,其为 yyyy-mm-dd hh:mm:ss 格式下的字符数 
    20 + s ,其为 yyyy-mm-dd hh:mm:ss.[fff...] 格式下的字符数,s 表示给定 Timestamp 的标度(其小数秒精度)。
    注:此类型由 java.util.Date 和单独的毫微秒值组成。只有整数秒才会存储在 java.util.Date 组件中。小数秒(毫微秒)是独立存在的。传递不是 java.sql.Timestamp 实例的对象时,Timestamp.equals(Object) 方法永远不会返回 true,因为日期的毫微秒组件是未知的。因此,相对于 java.util.Date.equals(Object) 方法而言,Timestamp.equals(Object) 方法是不对称的。此外,hashcode 方法使用底层 java.util.Date 实现并因此在其计算中不包括毫微秒你查数据的时候,应该是用oracle的方法规范了它的输出格式。