Java-在本机查询中设置currentDate时间?
我的实体中有以下字段:Java-在本机查询中设置currentDate时间?,java,sql,datetime,nativequery,Java,Sql,Datetime,Nativequery,我的实体中有以下字段: @JsonProperty @列(name=“updated”) @时态(TemporalType.TIMESTAMP) 更新私人日历; 我有以下本机查询,试图在上面设置更新日期: DateFormat DateFormat=new SimpleDateFormat(“yyyy-MM-dd HH:MM:ss”); 字符串updateDate=dateFormat.format(Calendar.getInstance().getTime()); 字符串queryStri
@JsonProperty
@列(name=“updated”)
@时态(TemporalType.TIMESTAMP)
更新私人日历;
我有以下本机查询,试图在上面设置更新日期:
DateFormat DateFormat=new SimpleDateFormat(“yyyy-MM-dd HH:MM:ss”);
字符串updateDate=dateFormat.format(Calendar.getInstance().getTime());
字符串queryString=“更新”+“人员”+
“set updated=“+updateDate”+
“其中person_id=1”;
但是我得到一个错误,说日期时间值不正确
如何设置该值?它是数据库中的
datetime
。如果您真的在执行原始JDBC更新查询,那么您应该在这里使用一个准备好的语句:
String sql=“更新人员集更新=?”?其中person_id=1”;
PreparedStatement ps=conn.prepareStatement(sql);
java.util.Date日期=Calendar.getInstance().getTime();
java.sql.Date sqlDate=new java.sql.Date(Date.getTime());
ps.setDate(1,sqlDate);
int numrowsimpacted=ps.executeUpdate();
但是,您可能需要考虑使用“<代码>日历>代码>,因为它已经被java 8中的一组新的日期/时间函数所取代。请考虑用<代码>本地LoalDeTime< /C> >替换<代码>日历> />代码>尝试使用这个查询。我看到您的查询中也会形成一些语法错误。
String queryString = "update " + "persons" +
" set updated = '" + updatedDate + "' " +
" where person_id = 1";
您使用的是哪种数据库实现?为什么在java中使用过时的日期和时间API?请尝试使用撇号环绕UpdateDate。数据库中的
DATETIME
可能需要偏移量,这将要求您更改模式。