如何从数据库中最旧的一天起一周后检索数据?

How can I retrieve data a week after from the oldest day in the database?

我想从数据库中最早的一天开始的一周后检索数据。我知道我可以使用

得到最老的
MIN(datefield)

我想做那样的事情

SELECT * FROM table WHERE {{Week before oldest}} >= datefield AND datefield <= {{oldest}}

我怎样才能得到{{Week after oldest}}和{{oldest}}值?

一个选项使用子查询:

select *
from mytable t
where datefield < (select min(datefield) + interval 1 week from mytable)

这将选择第一周的数据。如果你是运行MySQL8.0,还可以使用window函数:

select *
from (
    select t.*, min(datefield) over() as min_datefield
    from mytable t
) t
where datefield < min_datefield + interval 1 week

这可能有助于您跳过第一周的数据并检索第二周的数据。

SET @begdate=0;SELECT MIN(datefield) + INTERVAL 1 WEEK FROM mytable INTO @begdate;
SET @enddate=0;SELECT MIN(datefield) + INTERVAL 2 WEEK FROM mytable INTO @enddate;
SELECT * FROM mytable WHERE datefield BETWEEN @begdate and @enddate;

祝你好运,欢迎来到 Whosebug。节日快乐。