2014-02-20 47 views
0

请人帮我,我的查询是否是正确的MySQL的获取当前日期的记录加入

SELECT * 
FROM advt_answer ad 
JOIN advt_question xx ON ad.Q_ID=xx.Q_ID 
WHERE xx.id='anu'  
AND xx.Active='Y' and date(ad.Date)= CURDATE() 

我的结果是空的,即使在数据的存在。 我有一个问题表和答案表分别...问题可以插入多个用户... 因此,我想要的结果是特定上传的问题和插入今天的日期 我的日期字段ID日期时间即,我的价值将是“2014年1月23日15:39:00”

+0

您正在寻找'xx.id =''',并且您确定此类数据存在于该列中,以便将其他条件评估为true? – Incognito

+0

您可否向我们提供表格中的样本数据?如果可能,Mabe会创建一个[sqlfiddle](http://sqlfiddle.com/)。 – Rohan

+0

我的日期字段ID日期时间,即我的价值将'2014-01-23 15:39:00' – user3331850

回答

0

Wehn您datevarchar类型,值不YYYY-MM-DD格式,则比较

date(ad.Date) = CURDATE() 

失败,尽管你认为这是一个匹配的日期。
为了使其对比正确,您必须将其转换为正确的日期格式
您可以通过str_to_date函数来执行此操作。

如果你的VARCHAR日期(ad.Date)值是02/20/2014,然后

str_to_date(ad.Date, '%m/%d/%Y') = CURDATE() 

将导致true

如果不是'%m/%d/%Y',请使用适当的日期格式字符串。

而且最好应用date特定数据类型来存储日期和时间值。