0

我喜欢显示我的数据库中的所有记录,仅用于传递日期(我需要传递日期),我在我的数据库中使用 grails calander 1.2.1 插件日期存储在我的数据库中,如 2013-10-16 12:19:00我写的控制器

println"passed date is"+params.expenseDate_value            //its prints 20/3/2013 

def result=DailyBudget.createCriteria().list()

    {
        eq("expenseDate","params.expenseDate_value")
    }
println"result"+result

这里的params.expenseDate_value代表我打印时的通过日期,它显示了我的通过日期,运行良好。虽然在标准中我得到了这样的错误 java.lang.String cannot be cast to java.util.Date 我认为expenseDate得到pbm,我不知道确切。我该如何解决这个问题。有什么帮助吗?

4

2 回答 2

1

解决方案之一:只需在src/groovy文件夹下创建简单的 groovy 类。使用以下代码。

class MyUtils() {
      private static DateFormat dateFormat = new SimpleDateFormat("/*date format*/")

      public static Date toDate(Object obj) {             
         if (obj) {
           return dateFormat.parse(obj)
         }
         return null;
      }

}

在您的控制器中使用后。

def result=DailyBudget.createCriteria().list()

    {
        eq("expenseDate", MyUtils.toDate(params.expenseDate_value))
    }
于 2013-10-16T12:26:15.240 回答
0

你没有回答,但我相信你expenseDate是一个Date领域。所以只需转换StringDate,例如:

{
    eq("expenseDate", Date.parse('MM/dd/yyyy', params.expenseDate_value))
}
于 2013-10-16T12:44:19.363 回答