Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PreparedStatement从java在oracle中插入日期_Java_Oracle_Date_Prepared Statement - Fatal编程技术网

使用PreparedStatement从java在oracle中插入日期

使用PreparedStatement从java在oracle中插入日期,java,oracle,date,prepared-statement,Java,Oracle,Date,Prepared Statement,我使用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:

我使用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

我尝试设置时间戳:

但我得到了一个例外:

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);

确保数据库中您字段的数据类型为
Datetime
,它将在数据库中存储您的时间戳。

使用
java.sql.Timestamp
PreparedStatement.setTimestamp()
@a_horse___,无名称感谢您的建议,请参阅
update1
查看
SimpleDateFormat
“日期”使用“Datetime”存储时间是不同的吗?我使用的是Oracle10,没有称为Datetime的数据类型,Date可以同时存储日期和时间
String query ="insert into table_name(ID, Date) values(?,?)";
...
pstmt.setDate(2, date);