數據庫查詢時間沒有了時分秒的解決辦法
問題出處,公司一個項目中使用動態sql方式查詢Oracle數據庫,在展示時Date類型字段只展示日期,無時分秒。
分析:
1、眾所周知Oralce的日期類型有很多種,Date ,Timestamp等。其中Date類型對用的是java.sql.Date類型,Timestamp對用的是java.sql.Timestamp類型。這兩個類型均繼承自java.util.Date,其中java.sql.Date是沒有時分秒的大家可以查看一下javaApi
2、ResultSet 的getObject(*)方法對用Date類型默認返回的是java.sql.Date
3、網上很多人提供的解決方案是將數據庫Date類型改為Timestamp類型,顯示當中數據庫類型DBA是不會允許你改動的,且Oracle中對於時分秒要求不嚴格的地方DBA反而是建議用Date而不用Timestamp以節省資源
4、ibatis的ResultMap中對Date類型指定為Timestamp卻能夠正常顯示
經過一番思考后發現對用Date類型的字段使用rs.getTimestamp(*)即可正常顯示
方案二、
增加服務器/Java應用的虛擬機參數:-Doracle.jdbc.V8Compatible=“true”