任何人都可以帮助我,我的查询是否正确
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'
答案 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
特定数据类型来存储日期和时间值。