假设,我有一张名为events
:
CREATE TABLE events (
id integer,
dtstart timestamptz);
INSERT INTO events VALUES
(4,'2010-06-29 04:00:00'),
(5,'2010-06-29 13:00:00'),
(6,'2011-07-01 20:00:00'),
(7,'2012-07-03 14:30:00');
有两个输入参数dtfrom
,days
我需要从events
表事件中选择dtstart >= dtfrom
,其中groupby(date(dtstart)) <= days
。
例如,使用上表dtfrom='2010-06-29'
和days=2
我应该得到这些事件:
(4,'2010-06-29 04:00:00'),
(5,'2010-06-29 13:00:00'),
(6,'2011-07-01 20:00:00'),
我现在明白了:
SELECT DATE(dtstart) AS _dtstart
FROM events
WHERE dtstart > '2010-06-29 00:00:00'
GROUP BY _dtstart
ORDER BY _dtstart
LIMIT 2;
但我想避免分组。
days
我需要获取未来几天存在的事件。天数不应包括没有事件的天数。
换句话说:获取在 '2010-06-29 00:00:00' 之后开始的事件,但它们开始的不同日期的数量不应超过 2(或 10,或...)。