在 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”列过滤。