2013-08-04 3 views
0

интересно, могут ли какие-либо поклонники помочь мне. Я пытаюсь получить количество записей между двумя датами, я сделал этот запрос очень просто используя некоторые сообщения я нашел здесь, он всегда возвращает 0.Возвращаемое количество строк между 2 датами всегда возвращает 0

DATE_ADDED отметка времени

SELECT COUNT(id) 
FROM item 
WHERE date_added >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND date_added <= NOW() 

I также попробовал это:

SELECT COUNT(id) 
FROM item 
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND NOW() 

Что я делаю неправильно?

+1

Почему вы используете 'CURDATE()' для даты начала и 'NOW()' для окончания? Кроме того, какой тип данных является вашим столбцом 'date_added'? –

+0

@KenWhite Я думаю, что я просто пытался выполнять разные функции, когда обнаружил, что он не будет работать должным образом. Не работает в любом случае. – Jonnny

+0

@KenWhite Ahh, timestamp(), я чувствую, что это может быть проблемой. – Jonnny

ответ

0

Сегодня утром я задал этот вопрос, и все получилось очень хорошо, поэтому я не уверен, что пошло не так прошлой ночью, кроме часа. Благодаря вкладу каждого.

SELECT COUNT(id) 
FROM item 
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE() 

работал отлично, как сделал

SELECT COUNT(id) 
FROM item 
WHERE DATE(date_added) BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE() 

Надежда, что может быть полезным для кого-то.

2

Используйте DATE (NOW()) и DATE (date_added) для сравнения дат в mysql. Он даст вам дату в метке времени.

Для примера CURDATE() является 2008-11-11 и СЕЙЧАС() является 2008-11-11 12:45:34

Одним из них является дата, другая метка времени. Вы должны взять обе даты или обе отметки времени. Одно из решений, которое я сказал выше.

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