2013-01-20 159 views
2

我正在使用java代碼讀取文本文件中的少量數據以及日期格式(30-OCT-2012 12-22-44-991),我想將這些詳細信息存儲在Oracle數據庫,但格式與Oracle使用的格式相同。 我試過To_date但沒用,它給出了錯誤。 請幫助我。將日期格式更改爲Oracle日期格式

+2

請出示您是否嘗試過的代碼,以及確切的錯誤消息。 – Mat

回答

1

編輯: 可以使用PreparedStatement像亞歷山大Blomskø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 
+0

我將日期轉換爲時間戳,oracle列也是時間戳。但仍然我的查詢不起作用。 –

+0

查詢我正在使用 INSERT到IFT_VEHICLE_STATUS(LATITUDE,LONGITUDE,UPDATED_AT)VALUES('lat','lon','timestampdate'); –

+0

你可以使用'PreparedStatement'類似AleksanderBlomskøld的建議和幫助http://stackoverflow.com/questions/9180014/using-oracle-to-date-function-for-date-string-with-milliseconds: PreparedStatement pstmt = con.prepareStatement(「INSERT into IFT_VEHICLE_STATUS(LATITUDE,LONGITUDE,UPDATED_AT)VALUES(?,?,to_timestamp(?,'DD.MM.YYYY HH24:MI:SS:SSFF3'))」); pstmt.setInt(1,81000000); pstmt.setInt(2,162000000); pstmt.setDate(3,oracleDate); –