簡體   English   中英

使用PreparedStatement從Java中在oracle中插入日期

[英]insert date in oracle from java using PreparedStatement

我正在使用PreparedStatement從Java將數據插入Oracle。

以下是我的查詢:

String query ="insert into table_name(ID, Date) values(?,(select to_char(TO_TIMESTAMP_TZ(REPLACE('Wed May 29 09:26:59 IST 2013','IST','Asia/Calcutta'),'Dy Mon DD hh24:mi:ss TZR YYYY'),'Dy Mon DD hh24:mi:ss YYYY') from dual))";
pstmt = con.prepareStatement(query,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
pstmt.setString(1, ID);
pstmt.setString(2, "Fri Aug 02 12:38:35 IST 2013");
pstmt.executeUpdate();

但我得到了例外:

java.sql.SQLException: ORA-01858: a non-numeric character was found where a numeric was expected

因此,任何建議將不勝感激。

更新1

我嘗試設置時間戳記

pstmt.setTimestamp(1,Timestamp.valueOf("Fri Aug 02 12:38:35 IST 2013"));

但是后來我變得異常:

java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]

我的建議是用Java解析日期字符串並與

String query ="insert into table_name(ID, Date) values(?,?)";
...
pstmt.setDate(2, date);

確保databse中字段的數據類型為Datetime ,它將在數據庫中存儲您的時間戳。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM