遇到一个很严重的问题是,用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的值。
就是这个原因。
分享到:
相关推荐
Java编程语言提供了两个重要的日期处理类,分别是`java.util.Date`和`java.sql.Date`,它们在处理日期和时间上有着不同的特性和用途。 `java.util.Date`是更通用的日期时间类,它包含了日期和时间的信息,可以精确...
了解 Oracle 数据类型和对应的 JDBC 类型是非常重要的,因为它们之间的映射关系直接影响着 Java 应用程序与 Oracle 数据库的交互。 1. 字符类型 Oracle 数据类型 CHAR 对应的 JDBC 类型是 java.sql.Types.CHAR,...
在 Oracle 数据库与 Java 应用程序交互时,理解 SQL 数据类型和它们对应的 JDBC 类型以及 Oracle 扩展的 Java 类型是至关重要的。这里我们将深入探讨这些概念,并提供一个全面的指南。 首先,JDBC(Java Database ...
- `java.sql.Date`, `java.sql.Time`, `java.sql.Timestamp`是专为数据库操作设计的,分别对应SQL中的Date, Time, Timestamp类型。 - `java.util.Calendar`提供了日历相关的计算和操作,功能更全面。 - `java.text....
java.sql.Date sqlDate = new java.sql.Date(sqlTimestamp.getTime()); ``` 需要注意的是,`SimpleDateFormat`的`setLenient(false)`方法用于确保日期时间格式的严格匹配,避免因不规范的输入导致意外的结果。 在...
- `DATE`: 包含日期和时间信息,Java 中使用 `java.sql.Date`(日期)、`java.sql.Time`(时间)和 `java.sql.Timestamp`(日期时间)来对应。 - `VARCHAR2`: 可变长度的字符串。 3. **Java 数据类型** - `java...
- `DATE`:Oracle 的日期时间类型,包含日期和时间部分,映射为 `java.sql.Date`。 - `TIMESTAMP`:Oracle 中的时间戳类型,包含日期、时间和微秒,映射为 `java.sql.Timestamp`。 - `TIMESTAMP WITH TIME ZONE` ...
Java 8引入的`java.time`包相比于旧的`java.util.Date`和`java.sql.Timestamp`,在性能和易用性上都有显著提升。但在数据库层面,Oracle也有优化的索引策略,如B树索引或函数索引,来提高对Timestamp with Time Zone...
Mysql、Oracle 中的数据类型与 Java 中的数据类型对应表 MySQL 和 Oracle 是两种常用...本文详细介绍了 Oracle 中的 Number 和 Date 类型与 Java 中的数据类型对应关系,并对 MySQL 中的数据类型也进行了简单的介绍。
2. **`java.sql.Date`**: 这个类是专门为与数据库交互设计的,尤其是处理像Oracle这样的数据库中的`DATE`类型。它只存储日期,不包含时间部分。因此,如果你从Oracle数据库获取日期数据,或者要将仅包含日期的数据...
例如,SQL Server的datetime类型可能需要转换为Oracle的timestamp或date类型。 - **数据加载**:将转换后的数据以批量插入的方式写入Oracle。可以使用PreparedStatement的`addBatch()`和`executeBatch()`方法进行...
这里我们将深入探讨MySQL与Oracle数据类型之间的对应关系,以及它们在Java编程语言中的映射。 1. MySQL数据类型: - BIGINT:MySQL中用于存储大整数,对应Oracle的NUMBER类型,可以表示非常大的数值。 - BIT:...
这是因为Java中的日期时间类与Oracle数据库中对应的日期类型有所不同。本篇文章将详细解析如何正确地在Java中获取当前时间并将其插入到Oracle数据库。 首先,Java提供了多种日期时间类,如`java.util.Date`、`java....
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); ``` - 在数据库操作中,如 `ResultSet` 的 `getDate()` 和 `PreparedStatement` 的 `setDate()` 方法通常使用 `java.sql.Date`。 3. **java....
4. **类型安全增强**:引入了新的类型安全机制,如java.sql.Timestamp、java.sql.Date和java.sql.Time,提高了日期时间操作的精确性和一致性。 ### Oracle JDeveloper:强大的J2EE开发工具 Oracle JDeveloper是一...
Timestamp sqlTimestamp = new java.sql.Timestamp(time); // 如果需要自定义时间格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US); Timestamp ts = new Timestamp(sdf....
- java.sql.Date, java.sql.Time, java.sql.Timestamp:表示日期、时间和日期时间的类。 11.4 数据库访问过程中的步骤 1. 加载和注册JDBC驱动。 2. 使用DriverManager.getConnection()方法建立与数据库的连接。 3. ...
Java与Oracle数据库交互时,需要注意一些特性,比如PL/SQL块、游标、BLOB/CLOB等大对象处理,以及Oracle特有的数据类型如DATE、TIMESTAMP等。 在实际开发中,为了更好的管理数据库连接,通常会使用连接池,如Apache...
《Oracle与SQL Server数据类型对应关系深度解析》 在数据库领域,Oracle与SQL Server作为业界广泛使用的两大数据库管理系统,各自拥有独特的数据类型体系。当在两者之间进行数据迁移、复制或整合时,理解并掌握其...
这个文档"各种数据库数据类型对映.doc"提供了IBM DB2、Oracle、Sybase、SQL Informix和IBM Content Manager这五种数据库的字段类型与`java.sql.Types`以及Java内置类型的映射关系。以下是对这些映射关系的详细解释:...