Hibernate / Java Object无法转换为Date

时间:2010-08-18 15:42:03

标签: java hibernate

我的java中有以下方法。出于某种原因,当我尝试将l_month强制转换为Date时,它表示该对象无法转换。在我的sql语句中,我使用带有'%M'的DATE_FORMAT将日期转换为月份,因此它只返回月份名称列表和该月份的登录次数。如何将l_month字段变为Date。最终我将它更改为一个字符串,所以如果它可以被强制转换为一个很好的字符串,但似乎没有任何工作。

public List<Logins> getUserLoginsByMonth() {
     Session session = getSessionFactory().openSession();
     ArrayList<Logins> loginList = null; 

     try {
          String SQL_QUERY = "SELECT l_date as l_month, SUM(logins) as logins FROM (SELECT DATE_FORMAT(login_time, '%M') as l_date, COUNT(DISTINCT users) as logins FROM user_logins WHERE login_time > DATE_SUB(NOW(), INTERVAL 1 YEAR) GROUP BY DATE(login_time)) AS Z GROUP BY(l_month)";

          Query query = session.createSQLQuery(SQL_QUERY)
                query.addScalar("l_month")
                query.addScalar("logins");

          List results = query.list();
          for(ListIterator iter = results.listIterator(); iter.hasNext() ) {
                Objects[] row = (Object[])iter.next();
                System.out.println((Date)row[0}]);
                System.out.println((BigInteger)row[1]);
          }

     }
     catch(HibernateException e) {
         throw new PersistenceDaoException(e);
     }
     finally {
         session.close();
     }            
}

1 个答案:

答案 0 :(得分:0)

DATE_FORMAT是

  

Blockquote根据格式字符串格式化日期值。

所以这是一个字符串而不是日期。