在MySQL中,我有一个表格包含多个列,其中一个是日期列。我想要查询,以便能够得到一个额外的列,显示当前行的日期与上一行日期之间的天数。
记录按照日期排序,并且我会根据其他列进行筛选。
例如:
记录按照日期排序,并且我会根据其他列进行筛选。
例如:
id other_col date days_between_dates
1 abc 2013-05-01 0
2 abc 2013-05-07 6
3 abc 2013-05-09 2
4 abc 2013-05-19 10
5 abc 2013-05-25 6
6 abc 2013-06-03 9
7 abc 2013-06-14 11
显然,由于第一行没有可比较的内容,应该显示0
。
我知道可以使用datediff
MySQL函数获取两个日期之间的差异,例如:
select datediff('2013-06-03','2013-05-25');
我的基本查询是select * from mytable where other_col = 'something' order by date;
但我怎么样才能直接获得像例子中那样的结果呢?(我需要额外的"days_between_dates
"列。)
另请注意,通常id是有序的,并且没有间隔,但我无法保证。只有按升序日期排序,并过滤“other_col”列。