java 如何取得oracle date类型的时分秒?
dao的实现类是:public List<Object[]> findByCreateTime() {
StringBuffer sql = new StringBuffer();
sql.append("select f_id,f_name,f_status,f_create_date from t_product where f_create_date between to_date('2012-08-04 21:10:00','yyyy-mm-dd hh24:mi:ss') and to_date('2012-08-05 21:10:00','yyyy-mm-dd hh24:mi:ss')");
return this.queryBySql(sql.toString());
在Action中我用
List<Object[]> list = productFrontService.findByCreateTime();
List<Product> productList=new ArrayList<Product>();
for(int i =0;i<list.size();i++){
Product product=new Product();
Object[] obj=list.get(i);
product.setId(Integer.valueOf(obj[0].toString()));
product.setName(obj[1].toString());
product.setStatus(Integer.valueOf(obj[2].toString()));
System.out.println((obj[3]));
productList.add(product);
}
取得值。
现在我打印出来的obj3只有 日期,没有时分秒,但是oracle数据库中确实有保存过时分秒。
我也用dateformat 试过了,得到的是永远是 12:00:00
怎样才能得到数据库中原有的时分秒?
--------------------编程问答-------------------- hh 改成 HH --------------------编程问答-------------------- oracle中Date类型在java中默认用java.sql.Date类型取出,java.sql.Date类型精确到日期,不包含时分秒。所以想取出的时间包含时分秒,可以在数据库中用to_char先把oracle中日期时间转化成字符串,然后在java中用String接到,或者可以在java中用java.sql.Timestamp类型来接,比如rs.getTimestamp(1)。你写的方法中可以用System.out.println((obj[3].getClass()))来测试一下是不是默认用java.sql.Date接了oracle中Date数据 --------------------编程问答-------------------- to_date('2012-08-04 21:10:00','yyyy-MM-dd HH:mm:ss') 改成这样试试,也可以在action 中改 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
+1
补充:Java , Java EE