`
hailong4688199
  • 浏览: 10181 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

java.sql的Date、Timestamp与oracle的date,timestamp的对应关系

    博客分类:
  • java
阅读更多
遇到一个很严重的问题是,用pl/sql develop查看oralce的date声明的字段时,明明包含有日期和时间,但是查出来的数据切只含的日期,时间的小时、分和秒都为零。而且系统中,当在前台传java.sql.Date类型的数据到oracle的存储过程中,插入数据库后,在前台显示却是包括时分钟的;而用存储过程自身的sysdate却不包含。


原来,java.slq.Date的定义本身是表示日期,不包含时间,你可以试试,把java.sql.Date转换成yy-MM-dd HH:mm:ss,会发现在它不包含时间。但为了与后台数据库传输日期是,但本身是包含毫秒级的时间(肯定是long类型)。

而oralce的date类型是包含日期和时间,精确到秒,而timestamp是比date更精确的时间,可到秒后的六位数。

所以问题就出现,你从一个表中查出date类型字段(由sysdate 插入时),在前台用statement.getDate取就无法显示日期了,只能用statment.getTimestamp才能取到日期和时间。虽然说Oracle的date类型在jdbc看来仍是Date,你可以用ResultSetMetaData rsm = rs.getMetaData();

int columnType = rsm.getColumnType(j); 查看出来。

但是从前台插入时,明明是java.sql.date,取出时是却是timestamp,那是因为在date在传输仍然会包含毫秒级的值,在oracle后台,根本没有把转换成date,却侟储的是timestamp的值。

就是这个原因。
分享到:
评论
1 楼 w758493 2011-02-17  
我也遇到这样的问题,本来字段属性类型设为了java.util.Date,结果使用Hibernate从ORACLE中取出时,调试时看到的类型确是Timestamp,相当无语呀。奇怪的呢

相关推荐

    Oracle date 和 timestamp 区别详解

    Oracle date 和 timestamp 区别详解 1.DATE数据类型  这个数据类型我们实在是太熟悉了,当我们需要表示日期和时间的话都会想到date类型。它可以存储月,年,日,世纪,时,分和秒。它典型地用来表示什么时候事情...

    Oracle数据库SQL基本应用与介绍

    Oracle数据库内部的数据操作可以通过sql语句执行处理,sql与C、Basic等语言不通,数据的访问方法和操作顺序不用正确指定,是要告诉数据库引擎要做什么就可以了。Oracle不仅可以通过基本的sql进行简单的数据操作,还...

    Oracle jdbc for 11g 最新版 驱动 ojdbc6dms.jar

     包括ARRAY, BFILE, DATE, INTERVALDS, NUMBER, STRUCT, TIME,TIMESTAMP,TIMESTAMP等。  ojdbc5.jar: 适用于jdk5  ojdbc6.jar: 适用于jdk6  ***_g.jar 只是用javac -g编译,生成所有调试信息,其它全一样 ...

    Oracle jdbc for 11g 最新版 驱动 ojdbc6.jar

     包括ARRAY, BFILE, DATE, INTERVALDS, NUMBER, STRUCT, TIME,TIMESTAMP,TIMESTAMP等。  ojdbc5.jar: 适用于jdk5  ojdbc6.jar: 适用于jdk6  ***_g.jar 只是用javac -g编译,生成所有调试信息,其它全一样  ...

    Oracle编程艺术

    1.3.6 DBA与开发人员的关系.........................................................119 1.4 小结....................................................................................121 第 2章体系结构概述...

    Oracle中TIMESTAMP的几种类型介绍与实例

    时间戳类型,与date的区别在于,date不能精确到毫秒,而timestamp可以精确到毫秒,毫秒的位数为0-9位,默认为6位。 SQL> select tp from timestamp_test; TP ----------------------------------------------------...

    DtSQL通用数据库管理工具

    支持的数据库包括:Cache, DB2, Derby, Firebird, FrontBase, H2, HSQLDB, Informix, Ingres, JDatastore, MaxDB, Mckoi, Mimer, MySQL, Oracle, PointBase, PostgresSQL, Solid, SQLite, SQL Server, SQL Anywhere, ...

    oracle 10.2.0.1 精简客户端.msi.zip

    1、本软件可作为简单的Oracle10g客户端使用,包括:tnsping、exp、imp、sqlldr、sqlplus、tkprof(新增)等功能,如对客户端功能有更高的使用要求,请安装...>在注册表中加入NLS_DATE_FORMAT、NLS_TIMESTAMP_FORMAT等环

    PL/SQL 基础.doc

    DATE(后增加 TIMESTAMP(比DATE更精细点(精确到秒) INTERVAL) 一般用DATE 2) 组合型:RECORD(常用)、TABLE(常用)、VARRAY(较少用) 3) 参考型:REF CURSOR(游标)、REF object_type 4) LOB(Large Object) 2. %...

    Oracle_Database_11g完全参考手册.part3/3

    《Oracle Database 11g完全参考手册》全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有的新增功能和工具,如何执行功能强大的SOL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象,...

    Oracle_Database_11g完全参考手册.part2/3

    《Oracle Database 11g完全参考手册》全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有的新增功能和工具,如何执行功能强大的SOL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象,...

    DtSQL 1.0.1

    支持的数据库包括:Cache, DB2, Derby, Firebird, FrontBase, H2, HSQLDB, Informix, Ingres, JDatastore, MaxDB, Mckoi, Mimer, MySQL, Oracle, PointBase, PostgresSQL, Solid, SQLite, SQL Server, SQL Anywhere, ...

    DtSQL Portable 2.1.1 - 通用数据库管理工具

    支持的数据库包括:Cache, DB2, Derby, Firebird, FrontBase, H2, HSQLDB, Informix, Ingres, JDatastore, MaxDB, Mckoi, Mimer, MySQL, Oracle, PointBase, PostgresSQL, Solid, SQLite, SQL Server, SQL Anywhere, ...

    ORACLE大表分区

    支持自动ORACLE大表分区: 版本进度: 31. 20110420 V2.2 支持任意表任意时间字段分区 以下为安装部署部分: 1.分区相关脚本部署执行顺序,安装前请确保该用户拥有管理员权限, 同时请执行GRANT CREATE ANY TABLE ...

    DtSQL Portable 1.0.1 - 通用数据库管理工具

    支持的数据库包括:Cache, DB2, Derby, Firebird, FrontBase, H2, HSQLDB, Informix, Ingres, JDatastore, MaxDB, Mckoi, Mimer, MySQL, Oracle, PointBase, PostgresSQL, Solid, SQLite, SQL Server, SQL Anywhere, ...

    赤兔Oracle数据库恢复软件 v11.6.zip

    5.支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i ) , BINARY FLOAT, BINARY DOUBLE (10g ) 6.全面支持LOB字段:支持CLOB、NCLOB和BLOBCLOB...

    Expert.Oracle.Database.Architecture.9i.and.10g

    DATE, TIMESTAMP, and INTERVAL Types 520 Formats 521 DATE Type 522 TIMESTAMP Type 529 INTERVAL Type 537 LOB Types 540 Internal LOBs 541 BFILEs 553 ROWID/UROWID Types 555 Summary 556 ■CHAPTER 13 ...

    oracle 10.2.0.1 精简客户端

    1、本软件可作为简单的Oracle10g客户端使用,包括:tnsping、exp、imp、sqlldr...>在注册表中加入NLS_DATE_FORMAT、NLS_TIMESTAMP_FORMAT等环境变量 >修改了注册表中Oracle_Home写死路径的BUG >完善一些错误消息提示

    SQL性能优化

     以上四个SQL在ORACLE分析整理之后产生的结果及执行的时间是一样的,但是从ORACLE共享内存SGA的原理,可以得出ORACLE对每个SQL 都会对其进行一次分析,并且占用共享内存,如果将SQL的字符串及格式写得完全相同则...

    北大青鸟Oracle教程集1

    Oracle 入门 Version 3.0 目标 理解与 Oracle 相关的 RDBMS结构 结构 掌握Oracle 数据类型 掌握 掌握数据定义语言 掌握数据操纵语言 掌握事务处理和数据控制命令 Oracle 简介 对象关系数据库管理系统 (ORDBMS) 提供...

Global site tag (gtag.js) - Google Analytics