2012-01-17 2 views
1

Я пытаюсь извлечь все строки из таблицы с отметкой времени UNIX за последние 30 дней.Получение всех строк после отключения timestamp в MySQL

SELECT count(member_id), DATE(FROM_UNIXTIME(`join_date`)) as date 
FROM members 
WHERE join_date > (join_date-'2592000') 
GROUP BY DATE(FROM_UNIXTIME(`join_date`)) 
ORDER BY join_date DESC 

Там больше там происходит, очевидно, так как он группирует их днем ​​и преобразует их в то время, MySQL, но важно то, где положение, что не работает .. Остальное хорошо.

У меня нет ошибок, но запрос не прерывается, как ожидалось.

Query Result

EDIT: Есть.

SELECT count(member_id), DATE(FROM_UNIXTIME(`join_date`)) as date 
FROM exp_members 
WHERE DATEDIFF(CURDATE(), FROM_UNIXTIME(join_date)) < 30 
GROUP BY DATE(FROM_UNIXTIME(`join_date`)) 
ORDER BY join_date DESC 
+0

Является ли join_date целым числом? – Karlson

+0

Какую программу вы используете для просмотра БД? – wrongusername

+0

Sequel Pro для Mac. – jdp

ответ

1

Это: WHERE join_date > (join_date-'2592000') - это почти наверняка ваша проблема.

Вы, вероятно, хотите сравнить join_date к CURDATE (а не само-х) с помощью DATEDIFF таким образом вы можете использовать приращений весь день вместо секунд, как 259200, который лучше наиболее читаемый человеком мудрым.

+0

Спасибо, Майкл. Именно это я и сделал. Очень признателен. – jdp

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

  • Нет связанных вопросов^_^