Java JDBC-JTDS错误?对于日期和时间(x)类型的列

Java JDBC-JTDS错误?对于日期和时间(x)类型的列,java,jdbc,jtds,Java,Jdbc,Jtds,当我试图从ResultSetMetaData 对于类型日期和时间(x),使用方法getColumnTypeName,我得到 nvarchar。对于其他类型,它似乎工作得很好。这是虫子吗?使用ResultSetgetString(“键入名称”)似乎可以。我正在运行MSSQL2008 @没有名字的马 ResultSetMetaData我在执行查询时得到的。那样的话,我就没有桌子了。下面是代码片段 if (resultType == ResultMappingType.QUERY){ // For Q

当我试图从
ResultSetMetaData
对于类型
日期
时间(x)
,使用方法
getColumnTypeName
,我得到
nvarchar
。对于其他类型,它似乎工作得很好。这是虫子吗?使用
ResultSet
getString(“键入名称”)
似乎可以。我正在运行
MSSQL2008

@没有名字的马

ResultSetMetaData
我在执行查询时得到的。那样的话,我就没有桌子了。下面是代码片段

if (resultType == ResultMappingType.QUERY){ // For Query
    Statement statement = con.createStatement();
    ResultSet rs = executeAndValidateQuery(statement, resultName);
    ResultSetMetaData rsMeta = rs.getMetaData();
    for( int i = 1 ; i < rsMeta.getColumnCount()+1 ; i ++ ){
        columnInfo.put( rsMeta.getColumnName(i), rsMeta.getColumnTypeName(i));
    }

}else { //For View & Table
    ResultSet rsColumns = meta.getColumns(catalog, schemaPattern, resultName, null);
    while (rsColumns.next()){
        columnInfo.put(rsColumns.getString("COLUMN_NAME"), rsColumns.getString("TYPE_NAME"));
    }
}
....
private ResultSet executeAndValidateQuery(Statement statement, String query) throws KbValidationException{
    ResultSet rs = null;
    try{
        rs = statement.executeQuery(query);
    }
    catch(SQLException ex){
        throw new KbValidationException(ex.getMessage());
    }
    return rs;
}
if(resultType==ResultMappingType.QUERY){//For QUERY
语句Statement=con.createStatement();
ResultSet rs=executeAndValidateQuery(语句,结果名称);
ResultSetMetaData rsMeta=rs.getMetaData();
对于(int i=1;i
这是一个已知的JTDS错误,请参见

这是一个已知的JTDS错误,请参见

我很困惑
ResultSet.getString()
ResultSetMetadata.getColumnTypeName()
完全不同。请向我们显示您正在运行的查询以及表的表定义。@a_horse_和a_no_name我已经发布了代码片段,并且在您得到错误的类型名称时,查询是什么样子的?@a_horse和a_no_name非常简单
从DDD中选择*;以下是表列
CREATE table[dbo].[DDD]([Id][int]不为NULL,[DayId][int]不为NULL,[MonthId][int]不为NULL,[YearId][int]不为NULL,[D1][datetime]不为NULL,[D2][datetime]不为NULL,[D3][date date date date notnull,[D5][time](7)不为NULL,[D6][smalldatetime]不为NULL,约束[PK DDD]主键聚集([Id]ASC)和[PRIMARY]上的(PAD_INDEX=OFF,STATISTICS_norecomputer=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)这是一个已知的JTDS错误,请参阅。我很困惑
ResultSet.getString()
ResultSetMetadata.getColumnTypeName()
完全不同。请向我们显示您正在运行的查询以及表的表定义。@a_horse_和a_no_name我已经发布了代码片段,并且在您得到错误的类型名称时,查询是什么样子的?@a_horse和a_no_name非常简单
从DDD中选择*;以下是表列
CREATE table[dbo].[DDD]([Id][int]不为NULL,[DayId][int]不为NULL,[MonthId][int]不为NULL,[YearId][int]不为NULL,[D1][datetime]不为NULL,[D2][datetime]不为NULL,[D3][date date date date notnull,[D5][time](7)不为NULL,[D6][smalldatetime]不为NULL,约束[PK DDD]主键聚集([Id]ASC)与[PRIMARY]上的(PAD_INDEX=OFF,STATISTICS_norecomputer=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)一起(PAD_INDEX=OFF,STATISTICS_norecomputer=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON。