gpt4 book ai didi

sql - 如何在 Sqlite 中按周号分组并获取周号的开始日期和结束日期?

转载 作者:行者123 更新时间:2023-12-02 04:56:44 31 4
gpt4 key购买 nike

我想按周号对结果进行分组,并获取该周的开始日期和结束日期。我不知道如何做这个 sqlite。有人可以帮我解决这个问题吗?

我也真的很困惑 sqlite 的工作方式。因为如果运行以下查询,我得到的周数为 00

SELECT strftime('%W','2012-01-01');

对于以下查询,周号为 01 而不是 00

SELECT strftime('%W','2012-01-02');

有人可以解释一下为什么 sqlite 会这样吗?

最佳答案

试试这个:

select * from t1;

+------------+
| ADate |
+------------+
| 2012-01-04 |
| 2012-01-10 |
| 2012-01-19 |
| 2012-01-22 |
| 2012-01-01 |
| 2012-01-01 |
+------------+

select
strftime('%W', aDate) WeekNumber,
max(date(aDate, 'weekday 0', '-7 day')) WeekStart,
max(date(aDate, 'weekday 0', '-1 day')) WeekEnd,
count(*) as GroupedValues
from t1
group by WeekNumber;

+------------+------------+------------+------------+
| WeekNumber | WeekStart | WeekEnd | WeekNumber |
+------------+------------+------------+------------+
| 00 | 2011-12-25 | 2011-12-31 | 2 |
| 01 | 2012-01-01 | 2012-01-07 | 1 |
| 02 | 2012-01-08 | 2012-01-14 | 1 |
| 03 | 2012-01-15 | 2012-01-21 | 2 |
+------------+------------+------------+------------+

说实话...我不知道为什么 2012-01-01 是第 0 周,而 2012-01-02 是第 1 周。听起来很奇怪,特别是如果这一周从星期日开始的话! :s

关于sql - 如何在 Sqlite 中按周号分组并获取周号的开始日期和结束日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9322313/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com