将日期格式更改为Oracle日期格式

时间:2013-01-20 10:41:28

标签: java oracle10g

我正在使用java代码从文本文件中读取一些数据,以及格式中的日期(30-OCT-2012 12-22-44-991),我想将这些细节存储在Oracle数据库中,但格式相同正如oracle所使用的那样。 我试过To_date但没有用,它给出了错误。 请帮助我。

2 个答案:

答案 0 :(得分:1)

在Java中使用SimpleDateFormat将字符串解析为java.util.Date。然后在其上使用PreparedStatementset the date

答案 1 :(得分:1)

修改 您可以使用PreparedStatement类似已建议的AleksanderBlomskøld,并在Using Oracle to_date function for date string with milliseconds的帮助下使用:

final sql = "INSERT into IFT_VEHICLE_STATUS (LATITUDE, LONGITUDE, UPDATED_AT) " +
            "VALUES (?, ?, to_timestamp(?, 'DD.MM.YYYY HH24:MI:SS:SSFF3'))";
final PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setInt(1, 81000000);
pstmt.setInt(2, 162000000);
pstmt.setDate(3, oracleDate);

pstmt.execute();

<强>旧: 您是否尝试将java.util.Date转换为java.sql.Timestamp?你可以这样做:

try {
    final Date javaUtilDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2012-01-20 11:46:06");
    System.out.println("javaUtilDate = " + javaUtilDate);
    final Timestamp oracleDate = new Timestamp(javaUtilDate.getTime());
    System.out.println("oracleDate = " + oracleDate);
} catch (ParseException e) {
    e.printStackTrace();
}

这将提供以下输出:

javaUtilDate = Fri Jan 20 11:46:06 CET 2012
oracleDate = 2012-01-20 11:46:06.0