如何使用任意工作日作为一周的开始从 MySQL 中的日期中提取一周?
Posted
技术标签:
【中文标题】如何使用任意工作日作为一周的开始从 MySQL 中的日期中提取一周?【英文标题】:How to extract the week from a date in MySQL using arbitrary weekday as the start of the week? 【发布时间】:2014-12-27 11:06:54 【问题描述】:我有一个数据集(例如,“x”,日期为“xdate”),我希望获得每周平均数。我可以像这样使用 SQL(对于 mysql)来做到这一点:
SELECT
YEAR(xdate),
WEEKOFYEAR(xdate), avg(x)
FROM
xtable
GROUP BY
YEAR(xdate),
WEEKOFYEAR(xdate);
但是,我还想使用任意工作日作为“一周的开始”来对周进行分组。查看documentation 似乎可以使用参数进行 WEEK 调用,以将一周的开始时间表示为星期日或星期一。我想在一周中的任何一天打电话给一周的开始。所以平均值可能是从周三到周三,依此类推。有没有办法做到这一点?
【问题讨论】:
【参考方案1】:如果加一天,功能逻辑可以移动一天。
例如:
SELECT
YEAR(xdate),
WEEKOFYEAR(date_add(xdate, interval 1 day) ),
avg(x)
FROM
xtable
GROUP BY
YEAR(xdate),
WEEKOFYEAR(date_add(xdate, interval 1 day));
通过这种方式,您可以根据需要将一周的开始时间更改为任意天数。
【讨论】:
以上是关于如何使用任意工作日作为一周的开始从 MySQL 中的日期中提取一周?的主要内容,如果未能解决你的问题,请参考以下文章
如何使 GWT DatePicker 使用星期一作为一周的第一天?