0

我的 Grail 应用程序的列表视图具有来自数据库的以下日期格式: 2012-01-18 14:29:19 EST

我在用

<g:datePicker name="myDate" value="${new Date().format("dd MM,yyyy")}"/>

在控制器中:

def c  = abc.createCriteria()
    def x =  c.list{
            eq("name",params.wfName)
            eq("create_date",params.myDate)
    }

但是列表 x 里面什么都没有,也不返回任何内容。虽然我只搜索但 wfName 它工作得很好。params.myDate 也有日期值。

谁能给点意见?

4

3 回答 3

1

这可能是因为传入的“日期”是一个字符串。您的标准是寻找一个实际的日期。

您没有指定您使用的是什么版本的 Grails,但如果是 Grails 2.0,他们会在参数中添加方法以使转换更容易:

eq('create_date', params.date('myDate', 'dd MM,yyy'))

查看 mrhaki 的这篇文章以获得更多示例。

对于旧版本的 Grails,您必须自己使用Date.parse(params.myDate, "<< format >>")进行转换。

于 2012-01-18T21:24:11.890 回答
0

由于 Grails 1.2 访问params.myDate会自动获得一个 Date 对象。如果您没有使用 Grails 1.2 或更高版本,则需要从参数手动创建 Date 对象。

我认为您从 datePicker 获得的 Date 精度太高,无法在查询中返回任何内容。尝试更改您的条件以lt("create_date", params.myDate)查看是否可以返回任何值。也尽量params.myDate.clearTime()只给你留下日期。

于 2012-01-18T21:22:07.443 回答
0

我有 grails 的最新版本,但是其他转换方法呢

于 2013-06-11T09:25:40.867 回答