JAVA createSQLQuery().list()返回日期格式没有时分秒的解决方法

       在开发web项目中,发现提取Oracle中某几个Date类型的字段时,发现提出来的Date型值,只有“年月日”,没有“时分秒”显示出来,实际业务中,是要求页面上显示的日期要求是有“年月日是分秒”的。

       这里说明一下,我是用session.createSQLQuery(sql).list()来返回值的,反回的值类型是List(Object[]).虽然,我是用的ssh,由于此处的sql对应的业务情况涉及到复杂的多表查询,如果是用hibernate来作映射的话,难度就非常大了,而且编码会带来很大的难度。所以这里就委而用原生态的sql或者说标准sql来返回值了。


具体详细问题如下在用ssh中对于如下语句:
session.createSQLQuery(sql).list();
查询,返回一个List<Object[]>
在对List循环中,我发现如显示日期类型的值时,只显示了“年月日”,没有显示“时分秒”

for(Object[] obj:session.createSQLQuery(sql).list()){
    ...
    System.out.println("收单日期是 "+(Date)obj[3]);
    //只显示了年月日,没有显示"时分秒"了 如2015-01-21
    //oracle数据表中对应字段的值,实际上是2015-01-21 11:00:02
    ...
}

经网友提醒,和本人的耐心测试,思考后终于找到了解决方法

 

方法一:
将Oracel数据库对应表中“收单时间的字段”receive_sheet_time,由原来的Date类型改为timestamp
然后,在java程序中,由 (java.util.timestamp)obj[3] 这样返回值,就会显示有“年月月时分秒“了。

 

方法二:
OracleOracel数据库对应表中“抓取日期字段”PUTIN_TIME,字段继续保持Date类型不变
将上述sql语句中,返回 “抓取日期字段”PUTIN_TIME ,变为to_char(PUTIN_TIME,'YYYY-MM-DD hh24:mi:ss') as PUTIN_TIME
作为字符串类型来返回值,然后在java程序中用,由 (String)obj[3] 这样返回值,就会显示有“年月月时分秒“了。

 

转载:

http://blog.163.com/shenzhicheng@126/blog/static/52877944201331691252905/

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值