Datetime 在grails中使用日期查询
我试图在grails中运行一个查询,我想从中筛选的字段之一是mysql中的datetime类型。我试着这样做:Datetime 在grails中使用日期查询,datetime,grails,Datetime,Grails,我试图在grails中运行一个查询,我想从中筛选的字段之一是mysql中的datetime类型。我试着这样做: def formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") def timeNow = formatter.format(new Date()) foundUsers = User.executeQuery("from User u where u.username LIKE '%"+params.searchStr+"%'
def formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
def timeNow = formatter.format(new Date())
foundUsers = User.executeQuery("from User u where u.username LIKE '%"+params.searchStr+"%' and u.enabled =1 and u.expiration_date>"+timeNow,[max:20])
但这给了我一个错误:意外的标记!
我无法更改域用户和数据库,因为它们是旧的并且包含实时数据。
那我该怎么做呢?试试这个:
foundUsers = User.executeQuery("from User u where u.username LIKE ? and u.enabled = 1 and u.expiration_date > ?",['%params.searchStr%', timeNow],[max:20])
我还必须检查middlename、lastname和firstname的相似性,我该怎么做?它能支持这么多“喜欢”吗?是的,你可以有User.findbyusernamelikeandmddlenamelike和lastnamelike(“%1%”、“%2%”、“%3%”)我做了这个foundUsers=User.findbyusernamelikeorfirstnamelikeormidlenamelike或lastnamelikeandenabledandExpirationDate(“%params.searchStr%”、“%params.searchStr%”、“%params.searchStr%”、“%params.searchStr%”、“%params.searchStr%”、1、new Date())并且出现错误,找不到nameI did foundUsers=User.findAll(“从用户u where(u.username like?或u.firstname like?或u.middlename like?或u.lastname like?)和u.enabled=?和u.expirationDate>”,[searchStr,searchStr,searchStr,true,new Date(),[max:10])的属性,[searchStr并且它工作了!!谢谢你的帮助!:)