一般的数据库中,DATE字段只表示日期,不包含日期信息,而Oracle数据库中的DATE数据类型是包含日期、时间的,对于不同的Oracle jdbc驱动版本号。对于该问题的处理都有些差别。

近期使用 ORACLE 10G,时间字段因需求,设为了DATE类型,发现hibernate用native SQL 查询或ibatis获取result.getObject()的时候显示不了时分秒,原来是JDBC驱动自己主动把date映射为 java.sql.date,故截断了时分秒信息,假设你使用9i或者11g 的驱动程序,就没有该问题,可是Oracle10g的JDBC驱动,你会发现没有时分秒
,在Oracle9.2之后。引入了内置数据类型TIMESTAMP。

之所以引入它,是由于内置数据类型DATE的最小单位为秒;DATE的主要问题是它粒度不能足够差别出两个事件哪个先发生。9.2版本号后ORACLE在DATE数据类型上扩展出来了TIMESTAMP数据类型,它包含了全部DATE数据类型的年月日时分秒的信息。并且包含了小数秒(纳秒Nanoseconds级的)的信息。假设你想把DATE类型转换成TIMESTAMP类型,就使用CAST函数。 也正是从oracle 9.2開始,内置数据类型DATE和TIMESTAMP在使用9i的JDBC驱动做查询时,DATE被映射为java.sql.Date,TIMESTAMP被映射为java.sql.Timestamp。

从Oracle11開始,其JDBC驱动程序又又一次開始回归为将内置类型DATE映射为java.sql.Timestamp(正如9.2之前的那样)。 

所以,时分秒精度的丢失与hibernate无关,是oracle jdbc驱动的问题。最好的解决的方法就是:

【1】换驱动。

经測试,将最開始使用的10g的驱动ojdbc14.jar换为11g的驱动ojdbc5.jar后;

1.1:分别换应用WEB-INFO/lib文件夹下和Build Path引用。

1.2:假设是部署server应用还应当把was的配置改成ojdbc5.jar,详细截图例如以下:

PS:${ORACLE_JDBC_DRIVER_PATH}路径指向在was-环境-websphere变量处能够看到详细server配置路径。

【2】数据库中把
date 设为 timestamp 种类。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

oracle10g获得Date类型字段无分,秒的解决方案!的更多相关文章

  1. oracle10g获取Date类型字段无时分秒解决办法!

    一般的数据库中,DATE字段仅仅表示日期,不包括日期信息,而Oracle数据库中的DATE数据类型是包括日期.时间的,对于不同的Oracle jdbc驱动版本,对于该问题的处理都有些区别. 最近使用 ...

  2. ORACLE中date类型字段的处理

    (1)在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98' 在汉化的中文版本中ORACLE默认日期格式为'日-月-年',例如'21-8月-2003'或'21-8月 ...

  3. 【java】jackson 中JsonFormat date类型字段的使用

    为了便于date类型字段的序列化和反序列化,需要在数据结构的date类型的字段上用JsonFormat注解进行注解具体格式如下 @JsonFormat(pattern = "yyyy-MM- ...

  4. ORACLE插入DATE类型字段

    1 怎样在ORACLE中输入DATE类型的字段 insert into table_name (date_column) values(to_date('2006-06-04','yyyy-mm-dd ...

  5. jackson 中JsonFormat date类型字段的使用

    为了便于date类型字段的序列化和反序列化,需要在数据结构的date类型的字段上用JsonFormat注解进行注解具体格式如下 @JsonFormat(pattern = "yyyy-MM- ...

  6. 关于Java读取mysql中date类型字段默认值'0000-00-00'的问题

    今天在做项目过程中,查询一个表中数据时总碰到这个问题:      java.sql.SQLException:Value '0000-00-00' can not be represented as ...

  7. 从Date类型字段获得当日周几的DAYNAME函数

    例: select dayname(date) from pos.daywork

  8. java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法

    当取出这个值的时候只能用java.sql.Date而且只能显示年月日,我想知道如何才能显示时分秒   PS:不改变用getdate()存入的前提下! 解决方法:将getDate()方法改为getTim ...

  9. yii2:oracle date类型字段的写入或查询

    insert: insert into tabname(datecol) value(sysdate) ; -- 用date值 insert into tabname(datecol) value(s ...

随机推荐

  1. HDOJ 5147 Sequence II 树阵

    树阵: 每个号码的前面维修比其数数少,和大量的这后一种数比他的数字 再枚举每一个位置组合一下 Sequence II Time Limit: 5000/2500 MS (Java/Others)    ...

  2. 2015华为德州扑克入境摘要——软体project

    直到6一个月2号下午12时00,华为长达一个月的德州扑克锦标赛落下帷幕也被认为是. 我们的团队一直共同拥有3民,间.一个同学(吴)负责算法设计,一个同学(宋)负责分析消息,而我负责的实现框架设计和详细 ...

  3. linux下"="号与"=="号

    <鸟哥的linux私房菜>基础学习篇P382中说,在bash中"="与"=="是同样的,都代表推断是否相等,仅仅只是因为其它语言一般写法使用&quo ...

  4. 十大经典数据挖掘算法(9) 朴素贝叶斯分类器 Naive Bayes

    贝叶斯分类器 贝叶斯分类分类原则是一个对象的通过先验概率.贝叶斯后验概率公式后计算,也就是说,该对象属于一类的概率.选择具有最大后验概率的类作为对象的类属.现在更多的研究贝叶斯分类器,有四个,每间:N ...

  5. 自动同步Android源代码的脚本(repo sync)

    #!/bin/bash echo "================start repo sync====================" repo sync -j5 ]; do ...

  6. drools6 基本使用 -- 2

    续drools6 基本使用1 http://blog.csdn.net/cloud_ll/article/details/26979355 8. 创建src/main/test folder.把dro ...

  7. UITabBarController详细说明(简介和设置)

    [objc] view plaincopy - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions ...

  8. Source Insight 3.X 插件支持utf8,完美解决中国乱码,连接到美丽的轮廓

    上次SI多标签插件之后,由于公司内部编码改为utf8编码,因此特意做了这个Source Insight 3.X utf8插件. 下载地址:http://pan.baidu.com/s/1mgyZous ...

  9. JDK5什么是新的线程锁技术(两)

    一个. Lock线程同步实现互斥 Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也是一个对象. 两个线程运行的代码片段要实现同步相互排斥的效果.他们必须用 ...

  10. NGUI简单背包系统的实现

    一.利用txt文件存储游戏物品信息 首先在asset下创建一个txt文件,这里我们命名为objectsInfoList.txt,并将其拖放到unity Project视图中. 其中txt中我们先存放一 ...