2016-10-30 6 views
-3
 name   date 
|A BADGE TOO FAR| 1997-03-15| 
|A BADGE TOO FAR| 1997-03-22| 
|A BEAT SO FAR | 2010-11-19| 
|A BEAT SO FAR | 2011-01-11| 
|A BEAT SO FAR | 2012-03-04| 
|A BEAT SO FAR | 2012-03-29| 

У меня есть таблица данных, как в приведенном выше примере, и мне нужно считать дни между датамисосчитать дни между событиями MySQL

+0

Не могли бы вы поделиться вывод, что вы ожидаете получить для этого образца? Это поставит вопрос легче ответить. – Mureinik

+0

DATEDIFF() не работает? – eightShirt

ответ

0

Простой способ сделать это, чтобы держать дату из предыдущей строки в переменной сеанса и использовать функцию DATEDIFF(), как прокомментировал @eightShirt.

SELECT DATEDIFF(date, @d), @d:=date 
FROM mytable 
ORDER BY date; 

Убедитесь, что вы заказываете на date, чтобы получить строки в правильном порядке. Без явного запроса запроса нет гарантии, что строки будут обрабатываться в любом конкретном порядке. На практике, как правило, это индексный порядок, в зависимости от того, какой индекс использует запрос, но это зависит от оптимизатора.

SQLFiddle демо: http://sqlfiddle.com/#!9/c3f413/2

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