Oracle中明明是Date,取出来怎么成了Timestamp了?

binny 2003-12-10 05:07:57
Oracle9,一个字段UPD_DATE是DATE类型,用resultSetMetaData.getColumnType(1)取得91(也就是说是java.sql.Types.DATE),可是用rs.getObject(1)出来的Object用getClass().getName()得到的是java.sql.Timestamp。打出来也是2003-12-09 00:00:00.0这样的格式,这是怎么回事
...全文
354 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ManFirst 2003-12-18
  • 打赏
  • 举报
回复
object obj=(java.util.Date) *.getObject;
ManFirst 2003-12-18
  • 打赏
  • 举报
回复
希望这个对你有帮助。
try {
// Get database meta data
DatabaseMetaData dbmd = connection.getMetaData();

// Get type info
ResultSet resultSet = dbmd.getTypeInfo();

// Retrieve type info from the result set
while (resultSet.next()) {
// Get the database-specific type name
String typeName = resultSet.getString("TYPE_NAME");

// Get the java.sql.Types type to which this database-specific type is mapped
short dataType = resultSet.getShort("DATA_TYPE");

// Get the name of the java.sql.Types value.
// This method is implemented in e291 Getting the Name of a JDBC Type
String jdbcTypeName = getJdbcTypeName(dataType);
}
} catch (SQLException e) {
}

Here's an example of output for the MySQL database:
MySQL Type Name, JDBC Type Name

TINYINT, TINYINT
BIGINT, BIGINT
MEDIUMBLOB, LONGVARBINARY
MEDIUMTEXT, LONGVARBINARY
LONGBLOB, LONGVARBINARY
LONGTEXT, LONGVARBINARY
BLOB, LONGVARBINARY
TEXT, LONGVARBINARY
TINYBLOB, VARBINARY
TINYTEXT, VARBINARY
CHAR, CHAR
NUMERIC, NUMERIC
DECIMAL, DECIMAL
INT, INTEGER
MEDIUMINT, INTEGER
SMALLINT, SMALLINT
FLOAT, FLOAT
DOUBLE, DOUBLE
DOUBLE PRECISION, DOUBLE
REAL, DOUBLE
VARCHAR, VARCHAR
ENUM, VARCHAR
SET, VARCHAR
DATE, DATE
TIME, TIME
DATETIME, TIMESTAMP
TIMESTAMP, TIMESTAMP
ManFirst 2003-12-18
  • 打赏
  • 举报
回复
应该和ORALCE JDBC的版本有关
Timestamp 也是标准来着,原先我们公司做电信的都用这种类型和数据打交道。
79cy 2003-12-18
  • 打赏
  • 举报
回复
关注
binny 2003-12-18
  • 打赏
  • 举报
回复
虽然问题没解决,但是时间也很长了,下午下班前揭帖
metome 2003-12-11
  • 打赏
  • 举报
回复
总有知道的,帮楼主up
binny 2003-12-11
  • 打赏
  • 举报
回复
看来是没人能说出所以然了,就当散分了吧
binny 2003-12-11
  • 打赏
  • 举报
回复
将帖子提前
peterguan 2003-12-11
  • 打赏
  • 举报
回复
在sqlserver里有和DATE相对应的类型么?
zjq1980 2003-12-11
  • 打赏
  • 举报
回复
这个问题果然有点意思。
估计是跟ORACLE的JDBC实现有关
不知道楼主用的是否ORACLE的官方实现
我反编译ORACLE的看了下
是返回oracle.sql.DATE类型
new oracle.sql.DATE(byte[]);
靠,不知道怎么这个byte[]就被它变成Timestamp了
没再看下去
太浪费时间了
peterguan 2003-12-11
  • 打赏
  • 举报
回复
不光在oracle里是这样,在其他数据库里好像都是这样。
binny 2003-12-10
  • 打赏
  • 举报
回复
TO:找抽

8是吧?java.sql.Types中有TIMESTAMP呀

而且,java.sql.Timestamp和java.sql.Date是并列的,都继承自java.util.Date

TO: peterguan(糖糖)

嗯,我是想如果能找到原因就更好了
peterguan 2003-12-10
  • 打赏
  • 举报
回复
不用getObject不就行了么
sallina 2003-12-10
  • 打赏
  • 举报
回复
是不是自动下溯造型了

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧