如何从数据库中最旧的一天起一周后检索数据?
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。节日快乐。
我想从数据库中最早的一天开始的一周后检索数据。我知道我可以使用
得到最老的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。节日快乐。