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 の場合は、変換を容易にするメソッドが params に追加されています。

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 以降を使用していない場合は、params から Date オブジェクトを手動で作成する必要があります。

datePicker から取得している日付の精度が高すぎて、クエリで何も返せないと思います。条件をlt("create_date", params.myDate)に変更して、値が返されるかどうかを確認してください。またparams.myDate.clearTime()、日付を残すようにしてください。

于 2012-01-18T21:22:07.443 に答える