hql日期和字符串的比较

publicIntegergetCountByNet(StringnetAddress,StringbeginTime,StringendTime){Objectargs... public Integer getCountByNet(String netAddress,String beginTime,String endTime){
Object args[]={netAddress,beginTime,endTime};
String hql="from AppointmentRecord rec where rec.netAddress=? and rec.appDate>=? and and rec.appDate<=?";
return getHibernateTemplate().find(hql,args).size();
}

我的这个方法中,不知道为什么加入and rec.appDate>=? and and rec.appDate<=?这段的时候,查询就报错,什么都不返回!
我的rec.appDate在数据库中是日期类型,望高手指点!!
展开
 我来答
我不是zhizhu
2010-12-24 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:180
采纳率:100%
帮助的人:92万
展开全部
and rec.appDate>=? and and rec.appDate<=?
这里判断的是日期类型的话String beginTime,String endTime显然是不对的,sql不会默认将字符串转换过来。
to_char(rec.appDate, ‘yyyy-mm-dd’)>=?
这样就好了,最好上网查查SQL转换日期格式,或者日期比较的例子看看。
bluedn
2010-12-24 · TA获得超过744个赞
知道小有建树答主
回答量:565
采纳率:0%
帮助的人:717万
展开全部
hql = hql + " and u.ftmakedate >= '"+ sftmakedate +"' ";
我是这样写的。很正常。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hnrko07
2010-12-24 · TA获得超过280个赞
知道答主
回答量:272
采纳率:0%
帮助的人:163万
展开全部
1.看你的数据库中用的是什么类型的.
2.看你的mapping映射的什么类型
3.用同类型进行比较.

VARCHAR2 类型比较也是ascii码比较的.betwwen没有比过varchar2.但应该也是ascii码比较的.应该可以实现

p.s.如果时间类型设计成了varchar或者varchar2的.建议修改.
理由:虽然可以穿8条秋裤过冬,但是最好不要那样做.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式