用于通过join获取当前日期记录的mysql

时间:2014-02-20 09:10:44

标签: 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为datetime,即我的值为'2014-01-23 15:39:00'

1 个答案:

答案 0 :(得分:0)

我们的date字段属于varchar类型,且值不是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特定数据类型来存储日期和时间值。