oracle10g获得Date类型字段无分,秒的解决方案!
一般的数据库中,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类型字段无分,秒的解决方案!的更多相关文章
- oracle10g获取Date类型字段无时分秒解决办法!
一般的数据库中,DATE字段仅仅表示日期,不包括日期信息,而Oracle数据库中的DATE数据类型是包括日期.时间的,对于不同的Oracle jdbc驱动版本,对于该问题的处理都有些区别. 最近使用 ...
- ORACLE中date类型字段的处理
(1)在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98' 在汉化的中文版本中ORACLE默认日期格式为'日-月-年',例如'21-8月-2003'或'21-8月 ...
- 【java】jackson 中JsonFormat date类型字段的使用
为了便于date类型字段的序列化和反序列化,需要在数据结构的date类型的字段上用JsonFormat注解进行注解具体格式如下 @JsonFormat(pattern = "yyyy-MM- ...
- ORACLE插入DATE类型字段
1 怎样在ORACLE中输入DATE类型的字段 insert into table_name (date_column) values(to_date('2006-06-04','yyyy-mm-dd ...
- jackson 中JsonFormat date类型字段的使用
为了便于date类型字段的序列化和反序列化,需要在数据结构的date类型的字段上用JsonFormat注解进行注解具体格式如下 @JsonFormat(pattern = "yyyy-MM- ...
- 关于Java读取mysql中date类型字段默认值'0000-00-00'的问题
今天在做项目过程中,查询一个表中数据时总碰到这个问题: java.sql.SQLException:Value '0000-00-00' can not be represented as ...
- 从Date类型字段获得当日周几的DAYNAME函数
例: select dayname(date) from pos.daywork
- java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法
当取出这个值的时候只能用java.sql.Date而且只能显示年月日,我想知道如何才能显示时分秒 PS:不改变用getdate()存入的前提下! 解决方法:将getDate()方法改为getTim ...
- yii2:oracle date类型字段的写入或查询
insert: insert into tabname(datecol) value(sysdate) ; -- 用date值 insert into tabname(datecol) value(s ...
随机推荐
- Moran’s I空间统计中出现内存溢出的问题
在经济学.资源管理.生物地理学.政治地理学和人口统计等领域,经常会有如下的研究需求: 研究区域中的富裕区和贫困区之间的最清晰边界在哪里? 研究区域中存在可以找到异常消费模式的位置吗? 研究区域中意想不 ...
- HDU ACM 1071 The area 定积分计算
分析: 1.求抛物线方程F(x)=a*x^2+b*x+c: 2.求直线方程f(x)=k*x+b. 3.利用定积分计算F(x)-f(x)在x2到x3之间的面积. #include<iostream ...
- 第1周 SQL Server 如何执行一个查询
原文:第1周 SQL Server 如何执行一个查询 大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Se ...
- 非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
1.HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开 ...
- VMWare网络设置的3中方式(转)
一 VMware网络设置的三种方式 1 Host-only连接方式 让虚机具有与宿主机不同的各自独立IP地址,但与宿主机位于不同网段,同时为宿主主机新增一个IP地址,且保证该IP地址与各虚机IP地址 ...
- 主机Window不能访问该虚拟机Linux Samba文件服务提供了一个文件夹
我最近遇到一个问题.虚拟机Linux中间Samba服务常开.主办"\\192.168.229.200" (我的虚拟机Linux址)訪问不了Share文件夹(/var/test),并 ...
- 解析DBR操作系统引导记录数据
理解文件系统.你必须要熟悉DBR,下面我们就来看看文件系统解析DBR数据. Dos Boot Record(DBR)操作系统引导记录是由操作系统的格式化程序建立的.在文件系统驱动操作不论什么一个磁盘卷 ...
- 从原理角度解析Android (Java) http 文件上传
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23781773 文件上传是我们项目中经常使用的功能,一般我们的服务器可能都是web ...
- 利用Pattern和Mather来禁止特殊字符的输入
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}[]‘::”“’.,.?]&q ...
- 隐藏快捷方式扩展名(.lnk)
自从装了Windows 7操作系统以后,有一个问题一直困扰着我.当我去掉“目录选项中”的“隐藏已知文件类型的扩展名”选项的“√”之后,桌面上的快捷方式的扩展名也出来了,看上去非常不爽.记得在XP.Vi ...