【发布时间】:2018-05-22 14:45:51
【问题描述】:
我有一张表 WRITE_DATE_DATA 有列 DATE_DATA(DATE 类型)和 TIMESTAMP_DATA(TIMESTAMP(6) 类型)。
当我执行时:
ResultSet rsmeta = ps.executeQuery("Select DATE_DATA,TIMESTAMP_DATA from WRITE_DATE_DATA")
ResultSetMetaData rsmeta = resultSet.getMetaData() ;
int imax = rsmeta.getColumnCount() ;
HashMap<String, Integer> hmRsColTypes = new HashMap<String, Integer>();
for ( int ii = 0 ; ii < imax ; ii++ )
{
String strColumn = rsmeta.getColumnName(ii+1);
System.out.println(rsmeta.getColumnType(ii+1));// line 1
System.out.println(rsmeta.getColumnType(ii+1));// line 2
}
输出:
在第 1 行 - TIMESTAMP_DATA
在第 2 行 -93 键入 java.sql.TimeStamp
在第 1 行 - DATE_DATA
在第一行 - java.sql.TimeStamp 的 93 类型
DATE_DATE 的预期数据类型将为 java.sql.Date 的 91 类型
为什么ResultSetMetaData 返回错误的数据类型TimeStamp 而不是Date 数据类型?
这是预期的行为吗,如果是,请分享文档或者我应该做其他事情来处理它。
【问题讨论】:
-
@MarkRotteveel 回答了这个问题是因为日期和时间戳之间的差异,我不是在问差异,我在 ResultSetMetaData 中得到错误的列数据类型。这是预期的行为还是我应该做其他事情
标签: java oracle date jdbc timestamp