Mysql,根据日期选择行

Posted

技术标签:

【中文标题】Mysql,根据日期选择行【英文标题】:Mysql, select rows according to date 【发布时间】:2012-10-04 13:14:33 【问题描述】:

我想做的事:

选择日期 = 2012-10-14 的行,然后显示该行之后的 4 行。所以从这个列表中

2012-10-12 column #2
2012-10-13 column #2
2012-10-14 was very sunny.
2012-10-15 rained all day.
2012-10-16 whatever.
2012-10-17 column #2
2012-10-18 column #2
2012-10-19 rained all day.
2012-10-20 whatever.
2012-10-21 column #2
2012-10-22 column #2

它会返回这个:

2012-10-14 was very sunny.
2012-10-15 rained all day.
2012-10-16 whatever.
2012-10-17 column #2
2012-10-18 column #2

感谢您的帮助。

PS:数据库中没有周末的数据,所以有些日期会丢失。

【问题讨论】:

【参考方案1】:
SELECT * FROM my_table WHERE date >= '2012-10-14' ORDER BY date LIMIT 5

在sqlfiddle 上查看。

【讨论】:

【参考方案2】:

此版本适用于日期范围,而不是固定数量的行。不完全清楚你想要哪一个。

select * from mytable where date_diff(date,'2012-10-14') <= 4 and date >= '2012-10-14';

【讨论】:

在这种情况下,我很想做一些更明确的事情:WHERE date BETWEEN '2012-10-14' AND '2012-10-14' + INTERVAL 4 DAY

以上是关于Mysql,根据日期选择行的主要内容,如果未能解决你的问题,请参考以下文章

验证日期之间的日期退出并根据类型选择特定行

从 MySQL 中根据日期选择记录

如何根据日期选择 2 年时间范围 - MySQL?

SQL 根据日期选择行

MySQL - 根据每列的最新日期和 id 列表将行转换为列

根据日期之间的排名逐行选择值