MySQL中的选择查询适用于Workbench,但不适用于代码

时间:2013-01-28 16:43:34

标签: mysql sql

我必须从数据库中获取在给定日期注册的所有用户。所以,我让系统发送电子邮件。要选择用户,我使用:

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(查询)方法)

2 个答案:

答案 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的表格列的类型为DATEDATETIME

答案 1 :(得分:0)

我终于使用了Grails提供的findByRegistered方法,而不是直接启动SQL查询,这样我就可以检索我想要的内容。但我意识到我必须在findBy ....方法中使用对象Date。所以,安迪,我认为你的答案是正确的,所以我赞成你。