Currently, JDBC Standard has no standard mapping for INTERVAL data types. ODBC 
has support for interval data type.  Trafodion has inherited this mapping from 
the legacy code when the ODBC/JDBC specification didn't support interval data 
types. This needs to be updated with the current standard specification.  Yes, 
it is possible to change the type name to 

INTERVAL YEAR
INTERVAL MONTH
INTERVAL YEAR TO MONTH 
INTERVAL DAY
INTERVAL DAY TO MINUTE
INTERVAL HOUR
INTERVAL DAY TO SECOND +
INTERVAL MINUTE
INTERVAL HOUR TO MINUTE
INTERVAL SECOND
INTERVAL HOUR TO SECOND
INTERVAL DAY TO HOUR
INTERVAL MINUTE TO SECOND

depending upon the SQL data type.  Please feel free to file a JIRA and consider 
volunteering to contribute to Trafodion.

Selva

-----Original Message-----
From: 韦俊鲁 [mailto:we...@teamsun.com.cn] 
Sent: Tuesday, December 12, 2017 6:15 PM
To: dev <dev@trafodion.incubator.apache.org>
Subject: question about interval data type

 question about interval data type

                 create a table with interval year column, and query it by jdbc 
interface, and the column type in the result is interval?why not interval year?

stmt = connection.createStatement();
stmt.execute("drop table trafodion.seabase.test_intervalyear");
stmt.execute("create table trafodion.seabase.test_intervalyear(c1 interval 
year)"); DatabaseMetaData dbmd = connection.getMetaData(); rs = 
dbmd.getColumns("TRAFODION", "SEABASE", "TEST_INTERVALYEAR", "%"); int colnum = 
8;//rs.getMetaData().getColumnCount();
String colname = null;
for (int i=1; i<=colnum; i++) {
    colname = rs.getMetaData().getColumnName(i);
    System.out.print(colname);
    System.out.print(", ");
if (colname == null) {
for (int j=0; j<10; j++) {
            System.out.print(" ");
        }
    } else {
for (int j = 0; j < (16 - colname.length()); j++) {
            System.out.print(" ");
        }
    }
}
System.out.println();
while (rs.next()) {
for (int i=1; i<=colnum; i++) {
        colname = rs.getString(i);
        System.out.print(colname);
        System.out.print(", ");
if (colname == null) {
for (int j=0; j<10; j++) {
                System.out.print(" ");
            }
        } else {
for (int j = 0; j < (16 - colname.length()); j++) {
                System.out.print(" ");
            }
        }
    }
    System.out.println();


}    

result:

TABLE_CAT,        TABLE_SCHEM,      TABLE_NAME,             COLUMN_NAME,      
DATA_TYPE,        TYPE_NAME,        COLUMN_SIZE,      BUFFER_LENGTH,    


TRAFODION,        SEABASE,          TEST_INTERVALYEAR,     C1,                  
          101,                      INTERVAL,             1,                    
       34,  

Reply via email to