微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java - 在本机查询中设置 currentDate 时间?

如何解决Java - 在本机查询中设置 currentDate 时间?

我的实体中有以下字段:

@JsonProperty
@Column(name = "updated")
@Temporal(TemporalType.TIMESTAMP)
private Calendar updated;

我有以下本机查询,我试图在上面设置更新日期:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String updatedDate = dateFormat.format(Calendar.getInstance().getTime());
    
String queryString = "update " + "persons" +
                     " set updated = " + updatedDate" +
                     " where person_id = 1";

但我收到一条错误消息,提示 incorrect datetime value

如何设置值?它在数据库中是 datetime

解决方法

如果您确实在执行原始 JDBC 更新查询,那么您应该在此处使用准备好的语句:

String sql = "UPDATE persons SET updated = ? WHERE person_id = 1";
PreparedStatement ps = conn.prepareStatement(sql);
java.util.Date date = Calendar.getInstance().getTime();
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
ps.setDate(1,sqlDate);
int numRowsAffected = ps.executeUpdate();

但您可能需要考虑不再使用 Calendar,因为它已被 Java 8 中的一套新的日期/时间函数所取代。相反,请考虑将 Calendar 替换为 {{1 }}。

,

尝试使用此查询。我在您最终形成的查询中也看到了一些语法错误。

String queryString = "update " + "persons" +
                     " set updated = '" + updatedDate + "' " +
                     " where person_id = 1";

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。