【问题标题】:Insert into PSQL DB from datetime-local html input从 datetime-local html 输入插入 PSQL DB
【发布时间】:2020-12-23 04:51:47
【问题描述】:

我无法将数据时间的正确格式放入插入语句(更多准备好的语句)。

从 HTML(作为 setter)输入到变量中作为 'String' -

<input  style="border:1px solid grey; width: 100%"  type="datetime-local" id="maintsd" name="maintsd">

二传手:

  public void setMaintsd(String maintsd) {
        this.maintsd = maintsd;
    }

准备好的声明:

 ps.setTimestamp(2, obj_modeSwitch_Bean.getMaintsdI());

Setter 将值设置为 2020-09-05T23:59

现在准备好的语句没有设置 setTimeStamp(my function to fetch) OR setDate(func to fetch datetime)

准备好的语句或参数有变化吗?

【问题讨论】:

    标签: java postgresql datetime jdbc


    【解决方案1】:

    PreparedStatement#setObject

    下面是一个例子:

    PreparedStatement st = conn.prepareStatement("INSERT INTO mytable (columnfoo) VALUES (?)");
    LocalDateTime ldt = LocalDateTime.parse("2020-09-05T23:59", DateTimeFormatter.ISO_LOCAL_DATE_TIME);
    st.setObject(1, ldt);
    st.executeUpdate();
    st.close();
    

    在你的情况下,应该是

    LocalDateTime ldt = LocalDateTime.parse(obj_modeSwitch_Bean.getMaintsdI(), DateTimeFormatter.ISO_LOCAL_DATE_TIME);
    ps.setObjec(2, ldt);
    

    【讨论】:

    • 谢谢,根据您提供的我的情况进行了更改。 PSQL 摄入量和 HTML 摄入量与它所需的类型有什么不同吗?此外,java8 与旧版本已随时弃用 dateTime?
    • 不客气。我强烈建议您始终使用此答案中使用的 modern java.time 日期时间 API。从 Trail: Date Time 了解有关现代日期时间 API 的更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多