2014-02-20 2 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() 

Мои результаты являются Empty даже когда Дейты присутствуют. У меня есть таблица вопросов и ответы на таблицы отдельно ... Вопросы могут быть вставлены несколькими пользователями ... Итак, результат, который я хочу, это вопрос, загруженный конкретным, и ответы, которые вставлены в сегодняшнюю дату Мое поле даты id datetime ie, мое значение будет «2014-01-23 15:39:00»

+0

Вы ищете 'xx.id = ''', и вы уверены, что такие данные существуют в этом столбце, так что другие условия оцениваются как истинные? – Incognito

+0

Можете ли вы предоставить нам образцы данных, представленных в таблице? Mabe создайте [sqlfiddle] (http://sqlfiddle.com/), если это возможно. – Rohan

+0

Мое имя поля id datetime i.e, мое значение будет '2014-01-23 15:39:00' – user3331850

ответ

0

Wehn ​​вашего 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 для хранения значений даты и времени.

Смежные вопросы