提取上周(周日开始)的 MySQL 数据
本指南演示如何检索从上周日开始的过去一周的 MySQL 数据。 我们将利用 MySQL 的日期函数来实现这一点。
MySQL 查询
以下查询有效地过滤数据,仅包含从上周日开始的过去 7 天的记录:
<code class="language-sql">SELECT id FROM tbname WHERE date BETWEEN date_sub(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY) AND CURDATE();</code>
详细说明
CURDATE()
:返回当前日期。DAYOFWEEK(CURDATE())
:确定当前日期是星期几(1=星期日、2=星期一、...、7=星期六)。INTERVAL DAYOFWEEK(CURDATE())-1 DAY
:计算要减去的天数才能到达上周日。 如果今天是星期日,则减去 0 天;如果今天是星期一,则减去 1 天,依此类推。date_sub(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY)
:从当前日期减去计算出的天数,得到上周日的日期。BETWEEN ... AND CURDATE()
:选择“日期”列在上周日到当前日期范围内的记录。说明性示例
考虑这个示例表:
id | date |
---|---|
2 | 2011-05-14 09:17:25 |
5 | 2011-05-16 09:17:25 |
6 | 2011-05-17 09:17:25 |
8 | 2011-05-20 09:17:25 |
15 | 2011-05-22 09:17:25 |
运行上面的查询将返回:
id |
---|
5 |
6 |
8 |
这会准确检索从上周日开始的过去一周内的条目对应的 ID(5、6 和 8)。 请注意,具体结果将取决于执行查询的当前日期。
以上是如何检索从周日开始的过去一周的 MySQL 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!