My 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也有日期值。
任何人都可以请一点意见吗?
答案 0 :(得分:1)
这可能是因为传入的“日期”是一个字符串。您的标准是寻找实际日期。
您没有指定正在使用的Grails版本,但如果它是Grails 2.0,则他们为params添加了方法以使转换更容易:
eq('create_date', params.date('myDate', 'dd MM,yyy'))
Check out this article by mrhaki更多例子。
对于旧版本的Grails,您必须使用Date.parse(params.myDate, "<< format >>")自行转换。
答案 1 :(得分:0)
由于Grails 1.2访问params.myDate
会自动为您提供Date对象。如果您没有使用Grails 1.2或更高版本,则需要从参数中手动创建Date对象。
我认为从datePicker获取的日期太精确,无法在查询中返回任何内容。尝试将条件更改为lt("create_date", params.myDate)
,看看是否可以获得任何返回的值。也可以尝试params.myDate.clearTime()
给你留下日期。
答案 2 :(得分:0)
我有最新版本的grails但是其他转换方法呢