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|
我有一个类似上面示例的数据表,我需要计算日期之间的天数
答案 0 :(得分:0)
一种简单的方法是在会话变量中保留上一行的日期,并使用DATEDIFF()函数作为@eightShirt的评论。
SELECT DATEDIFF(date, @d), @d:=date
FROM mytable
ORDER BY date;
确保按date
订购,以正确的顺序获取行。如果没有明确地排序查询,则无法保证按任何特定顺序处理行。在实践中,它通常按索引顺序,对于查询使用的任何索引,但这取决于优化器。
SQLFiddle演示:http://sqlfiddle.com/#!9/c3f413/2