用于保存Informix DATETIME YEAR TO SECOND值的等效Java数据类型?

时间:2010-12-29 09:15:57

标签: java jdbc informix

我想将Informix DATETIME YEAR TO SECOND映射到Java数据类型。

有人可以提供相应的Java数据类型来保存Informix DATETIME YEAR TO SECOND 值吗?


根据我的JDBC驱动程序,这是答案: java.sql.Time

5 个答案:

答案 0 :(得分:2)

根据此文档,

DATETIME YEAR TO SECOND可以映射到TIMESTAMP:

http://publib.boulder.ibm.com/infocenter/iwedhelp/v6r0/index.jsp?topic=/com.ibm.db2e.doc/dbsap_b3.html

TIMESTAMPs可以映射到java.util.Date 如果需要在Date上执行计算,请使用java.util.Calendar:

Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// Use the roll fonction to alter the date
// For example add one month to your Date
calendar.roll(Calendar.MONTH, 1);
// Get your Date back
date = calendar.getTime();

您是否使用任何框架来映射您的数据?

答案 1 :(得分:1)

我使用Jonathan Leffler的表格做了简单的测试回答:  Informix 7.3 - Declaring a date column data type with default as current date on insert/update

我使用Jython和JDBC Informix驱动程序JDBC.3.70.JC1DE。使用元数据的测试代码如下所示:

    db = DriverManager.getConnection(db_url, usr, passwd)
    c = db.createStatement()
    rs = c.executeQuery("SELECT * FROM test_datetime")
    rsmd = rs.getMetaData()
    print('columnCnt: %d' % (rsmd.getColumnCount()))
    while (rs.next()):
        for i in range(rsmd.getColumnCount()):
            col_no = i + 1
            print("value: [%s]" % rs.getString(col_no))
            print("name: [%s]" % rsmd.getColumnName(col_no))
            print("Java type: %d" % rsmd.getColumnType(col_no))
            print("Java class name: %s" % rsmd.getColumnClassName(col_no))
            print("column type name: %s" % rsmd.getColumnTypeName(col_no))
            print('-' * 20)

有趣列的输出:

value: [03.01.11]
name: [date_column]
Java type: 91
Java class name: java.sql.Date
column type name: date
--------------------
value: [2011-01-03 00:00:00.0]
name: [datetime_yd]
Java type: 93
Java class name: java.sql.Timestamp
column type name: datetime year to day
--------------------
value: [2011-01-03 10:28:51.0]
name: [datetime_ys]
Java type: 93
Java class name: java.sql.Timestamp
column type name: datetime year to second
--------------------
value: [10:28:51]
name: [datetime_hs]
Java type: 92
Java class name: java.sql.Time
column type name: datetime hour to second

这个版本的JDBC驱动程序的正确答案是:datetime year to second映射到java.sql.Timestamp

PS你写道你的驱动程序将其映射到java.sql.Time但是你可能使用了旧版本的Informix JDBC驱动程序吗?

答案 2 :(得分:0)

您是否尝试过使用java.sql.Date?我不了解Informix,但它似乎是这种数据的自然类型,不是吗?

答案 3 :(得分:0)

如果要访问小时,分钟和秒值,可以使用java.util.Date。

答案 4 :(得分:0)

是的,我收到了您的问题..您可以使用Timestamp数据类型

离....

Timestamp temp;
相关问题