jfinal 获取oracle的date字段问题

例如表中有个字段“creation_date”,它的类型是“date”,实际存入时是带时分秒的,如下图所示:

图片.png

但是通过Db.findFirst("select creation_date from xx") 获得的结果中时分秒已经丢失(返回结果集只有“年-月-日”),我现在的解决办法是通过转换成字符串形式即Db.findFirst("select  to_char(creation_date,'yyyy-mm-dd hh24:mi:ss') creation_date from xx")的方式才不至于丢失,但是这种做法每次都要转换,有没有其他办法解决?!


补充:

单步调试到如下代码处:

图片.png

得到该字段值的情况如下图所示:

图片.png


评论区

JFinal

2017-08-14 14:28

首先单步调试一下,看这个变量的类型是什么,即便是 Date 类型也是带有时、分、秒的。如果是 Timestamp 类型,那就更没有错误。 这种情况通常只是视觉上看上去没有时分秒,而格式化输出的时候会有

注意:在查看数据时,通常是对象的 toString() 方法所表现的数据,与真实数据不同

如果类型确实不对,或者是 Date 类型,但真的丢失了小时、分、秒,自定义一个 MyOracleDialect 继承一下 OracleDaielct,拼接管一下里面的 buildRecordList 与 buildModelList, 自由控制一下这为类字段的获取,具体可以参考一下 ModelBuilder、RecordBuilder 中的读取代码

估计很可能只是视觉上的问题

veky

2017-08-14 17:20

查看过了,数据类型确实是Date类型,搞了半天,不知道怎么弄。。。求波哥指点。

热门反馈

扫码入社