JDBC读取Oracle DATE类型数据没有时分秒
2017-02-14 16:07
549 查看
文章出处:http://www.365mini.com/page/jdbc-get-oracle-date-type.htm 非常感谢
众所周知,Oracle中的日期类型有Date,Timestamp等多种类型,当我们使用
00:00:00。
Oracle的Date类型对应Java中的java.sql.Date,Timestamp类型对应java.sql.Timestamp,java.sql.Date和java.sql.Timestamp均属于java.util.Date的子类。
Oracle的驱动在处理
如果我们想要获取Oracle Date类型中包含的时分秒等信息,则需要使用
对于Oracle中Timestamp类型的数据,如果我们使用的是
最后,我们不建议在Oracle Date类型的字段中保存时分秒等信息,如果需要保存该部分信息,请使用Timestamp类型,这样我们可以在Java中编写如下代码来获取Oracle日期、时间戳类型的数据。
int type = rsmd.getColumnType(i);
//循环获取ResultSet中的数据的部分代码
switch (type) {
case Types.TIMESTAMP: // 如果是时间戳类型
value = rs.getTimestamp(i);
break;
case Types.TIME: // 如果是时间类型
value = rs.getTime(i);
break;
default: //日期类型可以使用getObject()来获取
value = rs.getObject(i);
break;
}
map.put(rsmd.getColumnLabel(i), value);
众所周知,Oracle中的日期类型有Date,Timestamp等多种类型,当我们使用
ResultSet.getDate()来获取上述类型的数据时,即使数据库中保存的数据包含时分秒的信息,但是获取出来的数据仍然不会包含时分秒的信息。哪怕我们对其进行格式转换,得到的也最多是yyyy-MM-dd
00:00:00。
Oracle的Date类型对应Java中的java.sql.Date,Timestamp类型对应java.sql.Timestamp,java.sql.Date和java.sql.Timestamp均属于java.util.Date的子类。
Oracle类型 | Java类型 | getDate() | getObject() | getTimestamp() |
---|---|---|---|---|
Date | java.sql.Date | y-M-d | y-M-d | y-M-d H-i-s |
Timestamp | java.sql.Timestamp | N/A | y-M-d H-i-s ms | y-M-d H-i-s ms |
Date类型的数据时,只要我们使用
ResultSet.getDate()来获取,都会忽略掉时分秒等信息,
ResultSet.getObject()也是如此,因为当我们使用
ResultSet.getObject()来获取Date类型的数据时,默认返回的仍然是java.sql.Date类型的数据。
如果我们想要获取Oracle Date类型中包含的时分秒等信息,则需要使用
ResultSet.getTimestamp()来获取。
对于Oracle中Timestamp类型的数据,如果我们使用的是
ResultSet.getObject()来获取,则默认返回的oracle.sql.Timestamp类型的数据。值得注意的是,该类型并不是java.util.Date的子类,也没有重写
toString()方法。因此对于Timestamp类型的数据必须使用
ResultSet.getTimestamp()方法来获取。
最后,我们不建议在Oracle Date类型的字段中保存时分秒等信息,如果需要保存该部分信息,请使用Timestamp类型,这样我们可以在Java中编写如下代码来获取Oracle日期、时间戳类型的数据。
int type = rsmd.getColumnType(i);
//循环获取ResultSet中的数据的部分代码
switch (type) {
case Types.TIMESTAMP: // 如果是时间戳类型
value = rs.getTimestamp(i);
break;
case Types.TIME: // 如果是时间类型
value = rs.getTime(i);
break;
default: //日期类型可以使用getObject()来获取
value = rs.getObject(i);
break;
}
map.put(rsmd.getColumnLabel(i), value);
相关文章推荐
- java spring jdbc Oracle DATE 类型读取时没有时分秒问题及解决方案
- 查询Oracle中 date类型, 没有 时分秒
- 插入数据时,保存的date类型时间字段的数据只有年月日,没有时分秒的问题
- Oracle Date类型字段使用Hibernate插入后没有时分秒的解决
- C#读取Oracle中DATE类型的值,数据表中为空时,怎么去读?
- Jdbc插入date类型数据到oracle中
- oracle blob数据类型存储读取的小例子
- Oracle 中使用 ObjectDataSource 读取强类型 DataSet 数据集
- oracle的date类型数据 我是这么认为
- Oracle DATE和TIMESTAMP数据类型的比较
- ORACLE 数据类型DATE和TIMESTAMP的比较
- 通过OracleDataReader来读取BLOB类型的数据
- ORACLE DATE和TIMESTAMP数据类型的比较
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- ORACLE DATE和TIMESTAMP数据类型的比较
- JDBC 调用 oracle 存数过程 返回复合类型数据
- ORACLE没有自动增长的数据类型
- ORACLE DATE和TIMESTAMP数据类型的比较
- jdbc中oracle和java数据类型对应
- Oracle 写入和读取blob类型的数据(C#)