Java 尝试插入时出现错误ORA-01843不是有效月份
我需要从Java 尝试插入时出现错误ORA-01843不是有效月份,java,oracle,date,gettext,Java,Oracle,Date,Gettext,我需要从JTextField插入日期,如下所示: pst.setString (4, txt_date.getText()); 但留下错误:ORA-01843不是有效月份 在oracle中,数据类型为日期(例如:2014年5月30日) 如何解决这个问题 谢谢 编辑: 我在尝试{insert…etc之前添加了这个,您必须先将字符串格式化为date,就像 SimpleDateFormat formatter = new SimpleDateFormat("dd-mm-yyyy");
JTextField
插入日期,如下所示:
pst.setString (4, txt_date.getText());
但留下错误:ORA-01843不是有效月份
在oracle中,数据类型为日期(例如:2014年5月30日)
如何解决这个问题
谢谢
编辑:
我在尝试{insert…etc之前添加了这个,您必须先将字符串格式化为date,就像
SimpleDateFormat formatter = new SimpleDateFormat("dd-mm-yyyy");
String dateInString = "7-07-2014";
try {
Date date = formatter.parse(dateInString);
System.out.println(date);
System.out.println(formatter.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
相应地匹配您的数据库格式
txt_date.getText()
是字符串值,请尝试使用以下代码:
SimpleDataFormat格式化程序=新的SimpleDataFormat(“dd-mm-yyyy”);
String dateInString=txt_date.getText()
或时间戳,如:
您的文本是如何从txt_date.getText()返回的看起来像?为了在preparedStatement中设置变量,您需要将其转换为java.util.Date、java.sql.Date等。为什么yoiu不使用pst.setDate或pst.setTimestamp?@SebriZouhaier字符串不能转换为日期。我有一个用于获取日期的txtfield不是有效的月份…我从txtfield获取数据,然后单击“保存”按钮并插入在to database oracleEdited answer中,再次尝试解决此问题。谢谢。我使用pst.setTimestamp(4,getCurrentTimeStamp());这也很好,因为在添加审阅时,保存保存保存的日期和时间。但是我无法从txtField中获取值。否则我将不得不将数据类型设置为varchar2和date。非常感谢。
txt_date.getText()
try {
Date date = formatter.parse(dateInString);
System.out.println(date);
System.out.println(formatter.format(date));
pst.setDate (4, formatter.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
pst.setTimestamp(java.util.Date().getTime());