跪求,JAVA SQL这里查询某个时间段的代码哪里错了?
if(null!=job&&null!=job.getCreateTime()&&!"".equals(job.getCreateTime())){SimpleDateF...
if(null!= job &&null!=job.getCreateTime()&&!"".equals(job.getCreateTime())) { SimpleDateFormat currentTime = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); hql.append(" and j.createTime between" +currentTime+ " and :createTime "); map.put("createTime","%"+ job.getCreateTime()+"%"); } unexpected char: '@' [select distinct j from recruitment.model.Job j where 1 = 1 and j.numPosition > 0 and j.createTime betweenjava.text.SimpleDateFormat@30fadcc0 and :createTime ]SimpleDateFormat?怎么错了??debug进去看currentTime的值是java.text.SimpleDateFormat@30fadcc0 求助啊
展开
推荐于2021-01-29
展开全部
1、传递的不是日期。
2、ORACLE的日期不可以% %
原语句修改,请调试,
if(null!= job &&null!=job.getCreateTime()&&!"".equals(job.getCreateTime())) {
SimpleDateFormat currentTime = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
String s=currentTime.format(new Date());
hql.append(" and j.createTime between to_date('"+s+"', 'yy-MM-dd HH24:mi:ss')" and :createTime ");
map.put("createTime", job.getCreateTime());
}
这个写法像SQL。
其实,两个应该都使用参数
if(null!= job &&null!=job.getCreateTime()&&!"".equals(job.getCreateTime())) {
Date now=new Date();//某个日期,这里用当前日期作例子
hql.append(" and j.createTime between :datenow and :createTime ");
map.put("createTime", job.getCreateTime());
map.put("datenow",now);
}
2、ORACLE的日期不可以% %
原语句修改,请调试,
if(null!= job &&null!=job.getCreateTime()&&!"".equals(job.getCreateTime())) {
SimpleDateFormat currentTime = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
String s=currentTime.format(new Date());
hql.append(" and j.createTime between to_date('"+s+"', 'yy-MM-dd HH24:mi:ss')" and :createTime ");
map.put("createTime", job.getCreateTime());
}
这个写法像SQL。
其实,两个应该都使用参数
if(null!= job &&null!=job.getCreateTime()&&!"".equals(job.getCreateTime())) {
Date now=new Date();//某个日期,这里用当前日期作例子
hql.append(" and j.createTime between :datenow and :createTime ");
map.put("createTime", job.getCreateTime());
map.put("datenow",now);
}
更多追问追答
追问
我用的是MYSQL, HQL语句啊
hql.append(" and j.createTime between to_date('"+s+"', 'yy-MM-dd HH24:mi:ss')" and :createTime ");
这里+s+为什么这么写啊,我放到MYECLIPSE里面,不能编译的吖,帮忙看看符号啊
追答
你原来的语句:hql.append(" and j.createTime between" +currentTime+ " and :createTime ");
自己检查检查吧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是oracle吗?
如果是oracle 在写sql的时候,日期格式是需要的to_date()这个函数的。
如果是oracle 在写sql的时候,日期格式是需要的to_date()这个函数的。
追问
MYSQL, HQL
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询