我必须从数据库中获取在给定日期注册的所有用户。所以,我让系统发送电子邮件。要选择用户,我使用:
String query="Select mail from users where registered > "+"'"+datestring+"'"+";"
注册的位置是用户注册时的trales,而datestring是String,存储实际的日期。所以,我终于得到了这样一句话:
Select mail from users where registered > '2013-01-28';
问题是......如果我在MySQL Workbench中复制+粘贴句子,它就像一个魅力。但是,在代码中,它不起作用,并且句子永远不会启动。有什么帮助吗?
如果它有帮助,我使用Grails(executeQuery(查询)方法)
答案 0 :(得分: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
。
答案 1 :(得分:0)
我终于使用了Grails提供的findByRegistered方法,而不是直接启动SQL查询,这样我就可以检索我想要的内容。但我意识到我必须在findBy ....方法中使用对象Date。所以,安迪,我认为你的答案是正确的,所以我赞成你。