[英]insert date in oracle from java using PreparedStatement
I am using PreparedStatement for inserting data in Oracle from Java. 我正在使用PreparedStatement从Java将数据插入Oracle。
Following is my query: 以下是我的查询:
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();
But I am getting the exception: 但我得到了例外:
java.sql.SQLException: ORA-01858: a non-numeric character was found where a numeric was expected
So any suggestion will be appreciated. 因此,任何建议将不胜感激。
Update1 更新1
I tried setting Timestamp : 我尝试设置时间戳记 :
pstmt.setTimestamp(1,Timestamp.valueOf("Fri Aug 02 12:38:35 IST 2013"));
But then I am getting exception: 但是后来我变得异常:
java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
My suggestion parse your date string in Java and go with 我的建议是用Java解析日期字符串并与
String query ="insert into table_name(ID, Date) values(?,?)";
...
pstmt.setDate(2, date);
确保databse中字段的数据类型为Datetime
,它将在数据库中存储您的时间戳。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.