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 ...
随机推荐
- android升级软件版本号,您安装后的新版本号,成功安装画面没有出现,或直接回到桌面
Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //an ...
- USACO comehome Dijkstra
USER: Kevin Samuel [kevin_s1] TASK: comehome LANG: C++ Compiling... Compile: OK Executing... Test 1: ...
- crm采用soap删除记录
//抽样 function demo() { //操作记录id var targetId = "A8A46444-BA10-E411-8A04-00155D002F02&qu ...
- socket计划编制的原则
socket编程原理 1.问题的引入 1) 普通的I/O操作过程: UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-rea ...
- Linux下一个OTL 采用long long类型数据库支持BIGINT
码如下面: #define OTL_BIGINT long long #define OTL_STR_TO_BIGINT(str,n) \ { \ n=atoll(str); \ } #define ...
- MySQL InnoDB存储引擎undo redo解析
本文介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo Log Undo Log 为了实现事务原子,在MySQL数据库InnoDB存储引擎,还使用Undo Log(简称:MVCC ...
- MSSQL连接字符串,你真的清楚吗?
原文:MSSQL连接字符串,你真的清楚吗? 几年前当我第一次面试时,考官发现我是个新手于是他让我写个连接字符串,虽然当时就知道X种连接字符串的写法,但是当时却没能写对一个,工作多年后我仍然不能写一个正 ...
- jQuery插件主要有两种扩展方式
jQuery插件主要有两种扩展方式: 扩展全局函数方式. 扩展对象方法方式. 扩展全局函数方式 扩展全局函数方式定义的插件,即类级别插件,可以通过jQuery.extend()来进行定义.定义格式为: ...
- virus.win32.parite.H查杀病毒的方法
virus.win32.parite.H病毒的查杀方法 昨天电脑中了virus.win32.parite.H病毒,搞了2个多小时最终搞定了.以下记录下我的解决方法. 第一步:下载Win32.Parit ...
- HDU 4391 Paint The Wall 段树(水
意甲冠军: 特定n多头排列.m操作 以下是各点的颜色 以下m一种操纵: 1 l r col 染色 2 l r col 问间隔col色点 == 通的操作+区间内最大最小颜色数的优化,感觉非常不科学... ...