【问题标题】:resultat BETWEEN is null结果 BETWEEN 为空
【发布时间】:2013-05-21 03:28:06
【问题描述】:

这是我的 jpql

@NamedQuery(name = "Subscribe.countByDate", query = "SELECT COUNT (s.idSubscribe) FROM Subscribe s WHERE s.dateInscription BETWEEN :dateS AND :dateF"),

这是我的门面:

    public Number subSexeDate(String v, Date dated, Date datef) {
    Query query = em.createNamedQuery("Subscribe.countByDate");
    //query.setParameter("sexe", v);
    query.setParameter("dateS", dated, TemporalType.DATE);
    query.setParameter("dateF", datef, TemporalType.DATE);
    return (Number) query.getSingleResult();
}

这是我的控制器

 public List<Number> subSexeDate() {
    sexe();
    Date d1= new Date(2008-01-07);
    Date d2= new Date(2010-01-01);
    List<Number> nb = new ArrayList<Number>();
    for (String var : sexe()) {

        nb.add(ejbFacade.subSexeDate("homme", d1, d2));
    }
    return nb;
}

结果是:[0, 0]

真正的问题

Date d1 = new Date(2007-01-01); long x = d1.getTime(); long y = System.currentTimeMillis(); Date d2 = new Date(); d2.setTime(y); d1.setTime(x); List&lt;Number&gt; nb = new ArrayList&lt;Number&gt;(); for (String var : sexe()) { nb.add(ejbFacade.subSexeDate(var, d1, d2)); System.out.println(d1.toString()+"date2"+d2);}

但 system.out 的结果:信息:Thu Jan 01 01:00:02 CET 1970date2Sun May 26 11:55:31 CEST 2013 –

【问题讨论】:

    标签: mysql date jpql


    【解决方案1】:

    我想这个问题与您构建 Date 对象的方式有关。 你正在写这个:

    Date d1= new Date(2008-01-07);
    

    与此相同:

    long x = 2008 - 1 - 7;
    Date d1 = new Date(x); // or new Date(2000L);
    

    我怀疑这不是您想要的。改用DateFormat 并解析您的日期字符串。

    【讨论】:

      猜你喜欢
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 2021-11-22
      相关资源
      最近更新 更多