在 MySQL 中获取一周的第一天
在处理数据库中的时态数据时,通常需要确定给定时间的第一天星期。这对于对数据进行分组和分析一段时间内的趋势特别有用。
问题陈述
用户有一个按周对数据进行分组的查询,但想要显示第一个每周的某一天而不是不同的日期。他们已确定日期 (2011-01-03),并需要检索相应的一周第一天 (2011-01-02)。
从星期日开始的周
如果一周从星期日开始,则可以使用以下 MySQL 表达式:
DATE_ADD(mydate, INTERVAL(1-DAYOFWEEK(mydate)) DAY)
该表达式通过从给定日期中减去当前的星期几(从 1 开始),然后加上 1 天来计算一周的第一天。
从星期一开始的周
如果一周从星期一开始,则需要不同的表达式:
DATE_ADD(mydate, INTERVAL(-WEEKDAY(mydate)) DAY);
在这种情况下,是一周中的当前日期(从 0 开始)从给定日期中减去,以确定返回到星期一的天数。
用法示例
假设我们有以下日期,代表 2011-01-03:
'2011-01-03'
如果假设一周从星期日开始,我们可以使用第一个表达式查找一周的第一天:
SELECT DATE_ADD('2011-01-03', INTERVAL(1-DAYOFWEEK('2011-01-03')) DAY);
这将产生以下结果:
2011-01-02
正如预期的那样,一周的第一天从星期日开始是 2011-01-02。
以上是如何在 MySQL 中查找一周的第一天?的详细内容。更多信息请关注PHP中文网其他相关文章!