我在 MS SQL Server 上有一个表,其中一列的数据类型为日期。我正在使用 jtds.jar 与数据库进行 JDBC 连接。我正在从 Connection 获取 DatabaseMetaData。在检查 DatabaseMetaData 的列时,我观察到
int iType = rsMeta.getInt("DATA_TYPE");
返回列类型为 java.sql.Types.VARCHAR
,它是一个字符串而不是日期。但它也返回
String tmp = rsMeta.getString("TYPE_NAME");
输入名称作为日期。
但对于 Oracle,它返回日期数据类型为 java.sql.Types.DATE
。
为什么会有这样的差异?
最佳答案
这是一个已知的 JTDS 错误,请参阅 http://sourceforge.net/p/jtds/bugs/679/ .
The returned datatype for a SQLServer Date type is returned as a varchar with a length of 10. This is wrong, it should return as Sql.Date. int iType = rsMeta.getInt("DATA_TYPE"); String tmp = rsMeta.getString("TYPE_NAME");
关于java - 为 jtds.jar 中的日期返回了错误的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8937360/