java - 为 jtds.jar 中的日期返回了错误的数据类型

标签 java sql-server jdbc jtds

我在 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/

相关文章:

java - 无法将字节数组转换为音频AAC文件

java - iPojo实例创建和管理

Java/SQL 查找重复项

java - Java 中的 OpenMP 任务

java - Spark Streaming Kafka 消费者

c# - SET IDENTITY_INSERT TableName ON 在 Entity Framework Core 2.2 上不起作用

sql-server - SQL Server 是否缓存 View 的执行计划?

sql - 将字符串的所有实例提取到连接结果中

关于Blob和Clob的Java JDBC,需要上传一个doc文件到MySQL数据库

java - 如何在 Spring3 MVC 中设置与 MySQL 的 JDBC 连接?