我想从具有JDBC的Oracle DB表中获取DATETIME列。这是我的代码:

int columnType = rsmd.getColumnType(i);
if(columnType == Types.DATE)
{
    Date aDate = rs.getDate(i);
    valueToInsert = aDate.toString();
}
else if(columnType == Types.TIMESTAMP)
{
    Timestamp aTimeStamp = rs.getTimestamp(i);
    valueToInsert = aTimeStamp.toString();
}
else
{
    valueToInsert = rs.getString(i);
}

我必须先确定列类型。我感兴趣的字段被识别为Types.DATE,但实际上它是DB中的DATETIME,因为它具有以下格式:“07.05.2009 13:49:32”

getDate截断时间:“07.05.2009”
和getString附加“.0”到它:“07.05.2009 13:49:32.0”

当然,我可以只删除最终的.0并始终使用getString,但这是一个肮脏的解决方法。

有任何想法吗 ?我一直在寻找getDateTime方法。

干杯,
提姆

最佳答案

java.util.Date date;
Timestamp timestamp = resultSet.getTimestamp(i);
if (timestamp != null)
    date = new java.util.Date(timestamp.getTime()));

然后以您喜欢的方式对其进行格式化。

08-07 05:19