错误ORA-01843尝试插入时无效

时间:2014-11-18 11:18:21

标签: java oracle date gettext

我需要从JTextField插入日期,如下所示:

pst.setString (4, txt_date.getText());    

但是留下错误:ORA-01843不是有效的月份

oracle数据类型中的

是DATE(例如:2014年5月30日)

如何解决这个问题?

谢谢

编辑:

Connection conn = Connessione.ConnecrDb();
   Statement stmt = null;
   ResultSet emps = null;

   SimpleDateFormat formatter = new SimpleDateFormat("dd-mm-yyyy");
String dateInString = "7-07-2014";

try {

       java.util.Date date = formatter.parse(dateInString);
    System.out.println(date);
    System.out.println(formatter.format(date));

} catch (ParseException e) {
    e.printStackTrace();
}    

我添加这个尝试{insert ... etc

1 个答案:

答案 0 :(得分:1)

您必须先将字符串格式化为日期,如

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

是使用以下代码尝试的字符串值:

SimpleDateFormat formatter = new SimpleDateFormat(“dd-mm-yyyy”);         String dateInString = 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();
    }   

或TimeStamp如:HELP

pst.setTimestamp(java.util.Date().getTime());