如何使用hql在MySql中设置datetime字段

时间:2012-05-08 05:53:51

标签: java mysql spring hibernate

我在MySql DB中以YYYY-mm-dd hh:mm:ss格式插入日期时遇到问题。 在DB中提交的是datetime类型。

我试过了:

Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.MINUTE, startMinute);
calendar.set(Calendar.SECOND,01);
Date startTime = calendar.getTime();

String hqlUpdate = "update challenge set start_time = :startTime where challenge_id =  :id";
sessionFactory.getCurrentSession().createSQLQuery(hqlUpdate)
                                 .setDate("startTime", startTime)
                                 .setInteger("id", id).executeUpdate();

3 个答案:

答案 0 :(得分:2)

尝试使用以下内容。

.setTimestamp("startTime", startTime);

答案 1 :(得分:0)

这里我特意尝试使用simpleDateFormat格式化日期对象,然后再将其传递给hibernate。检查一下是否有效。

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.MINUTE, startMinute);
calendar.set(Calendar.SECOND,01);
Date startTime = dateFormat.parse(dateFormat.format(calendar.getTime();));

String hqlUpdate = "update challenge set start_time = :startTime where challenge_id =  :id";
sessionFactory.getCurrentSession().createSQLQuery(hqlUpdate)
                             .setDate("startTime", startTime)
                             .setInteger("id", id).executeUpdate();

答案 2 :(得分:0)

如果使用setParameter()代替setDate() ...

,它对我有用