【问题标题】:java.sql.SQLException: ORA-01843: not a valid month errorjava.sql.SQLException: ORA-01843: not a valid month 错误
【发布时间】:2014-08-03 12:46:57
【问题描述】:

我在 html 5 输入类型 = "date" 格式中获取日期。在 mm/dd/yyyy 格式中。然后我得到它String fDate = request.getParameter("fromDate");

room.setFromDate(fDate);

然后在尝试运行查询时

insert into tbl_room_under_maintenance(room_id,room_number,from_date,to_date)
values(?,?,to_date(?,'MM/DD/YYYY'),to_date(?,'MM/DD/YYYY'))

PS1.setString(3,room.getFromDate().trim());
PS1.setString(4,room.getToDate().trim());

它显示错误:java.sql.SQLException: ORA-01843: not a valid month

【问题讨论】:

  • 你检查过你从 getFromDate().trim()) 得到的值是多少?
  • 您要么没有以您认为的格式获取日期,要么它确实包含无效的月份。
  • 在帖子中添加打印fDate的输出
  • 不需要添加数据@Pat;因为问题是数据,所以任何人都可以给 OP 的唯一答案是指出“36”(或任何它是什么)不是一个月..,这对任何人来说都不是很有用未来。
  • @Ben 这正是我要求数据的原因:)

标签: java sql oracle date to-date


【解决方案1】:

在插入前转换日期:

String fDate = request.getParameter("fromDate");
SimpleDateFormat sm = new SimpleDateFormat("mm/dd/yyyy");
Date dat = sm.parse(fDate);
insert into tbl_room_under_maintenance(room_id,room_number,from_date,to_date)
values(?,?,?,?)
PS1.setDate(3,dat);

【讨论】:

    猜你喜欢
    • 2017-04-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多