1

特定の日に登録されたすべてのユーザーをデータベースから取得する必要があります。というわけで、メールを送信するシステムを作ってみました。ユーザーを選択するには、これを使用します:

String query="Select mail from users where registered > "+"'"+datestring+"'"+";"

登録されている場所は、ユーザーが登録したときに追跡する列であり、datestring は、実際の日が格納される文字列です。というわけで、最終的にこんな一文になりました。

Select mail from users where registered > '2013-01-28';

問題は...MySQL Workbenchで文をコピーして貼り付けると、魔法のように機能します。しかし、コードでは機能せず、文は起動されません。何か助けはありますか?

それが役立つ場合は、Grails (executeQuery(query) メソッド) を使用しています。

4

2 に答える 2

1

datestringのようにキャストしてみてくださいdate

String query="Select mail from users where 
    registered > CAST('"+datestring+"' as DATE);"

またはとしてdatetime

String query="Select mail from users where 
    registered > CAST('"+datestring+"' as DATETIME);"

それらが機能しない場合は、試してみてくださいSTR_TO_DATE

String query="Select mail from users where 
    registered > STR_TO_DATE('"+datestring+"', '%Y-%m-%d');"

registeredこれは、のテーブル列がタイプDATEまたは。であることを前提としていますDATETIME

于 2013-01-28T17:52:33.470 に答える
0

最後に、SQL クエリを直接起動する代わりに、Grails が提供する findByRegistered メソッドを使用して、必要なものを取得することができました。しかし、findBy.... メソッドでオブジェクト Date を使用する必要があることに気付きました。だから、アンディ、あなたの答えは正しかったと思うので、私はあなたに賛成票を投じます.

于 2013-01-29T13:06:24.540 に答える