我发现连续几天有很多stackoverflow QnAs.
仍然答案太短,我无法理解发生了什么.
具体来说,我会组成一个模型(或表)
(如果它有所不同,我正在使用postgresql.)
CREATE TABLE work (
id integer NOT NULL,
user_id integer NOT NULL,
arrived_at timestamp with time zone NOT NULL
);
insert into work(user_id, arrived_at) values(1, '01/03/2011');
insert into work(user_id, arrived_at) values(1, '01/04/2011');
Run Code Online (Sandbox Code Playgroud)
(最简单的形式)对于给定的用户,我想找到最后连续的日期范围.
(我的最终目标)对于给定的用户,我想找到他连续的工作日.
如果他昨天来上班,他仍然(截至今天)有连续工作的机会.所以我昨天连续几天告诉他.
但如果他昨天错过了,他的连续几天是0或1,取决于他今天是否来.
今天说是第8天.
3 * 5 6 7 * = 3 days (5 to 7)
3 * 5 6 7 8 = 4 days (5 to 8)
3 4 5 * 7 * = 1 day (7 to 7)
3 * …Run Code Online (Sandbox Code Playgroud)