使用grails中的日期查询

时间:2012-05-04 04:54:40

标签: datetime grails

我正在尝试在grails中运行查询,我要过滤的其中一个字段是mysql中的日期时间类型。我试过这样做:

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])

但是这给了我一个错误:意外的令牌! 我无法更改域用户和数据库,因为它们已经过时且包含实时数据。 那我该怎么做呢?

2 个答案:

答案 0 :(得分:2)

  1. 我认为意外的令牌是因为'>'在u.expiration_date之后
  2. 您的代码不能保存为sql注入。
  3. 你的鳕鱼应该是这样的

    def foundUsers = User.findByUsernameLikeAndEnabledAndExpiration_date('%params.searchStr%',1,timeNow)

  4. 了解有关动态查找器的更多信息

    http://grails.org/doc/latest/guide/GORM.html#querying

答案 1 :(得分:0)

试试这个:

    foundUsers = User.executeQuery("from User u where u.username LIKE ? and u.enabled = 1 and u.expiration_date > ?",['%params.searchStr%', timeNow],[max:20])