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

Eni*_*n R 3 sql sqlite

我希望按周计算结果,并获取本周的开始日期和结束日期.我不知道如何做这个sqlite.有人可以帮我这个吗?

我也真的很喜欢sqlite的工作方式.因为如果运行以下查询,我得到的一周没有为00

SELECT strftime('%W','2012-01-01');
Run Code Online (Sandbox Code Playgroud)

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

SELECT strftime('%W','2012-01-02');
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么sqlite表现得像这样.

Mos*_*cho 7

试试这个:

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 |
+------------+------------+------------+------------+
Run Code Online (Sandbox Code Playgroud)

说实话......我不知道为什么2012-01-01是第0周,2012-01-02是第1周.听起来很奇怪,特别是如果星期几开始!:■


Ric*_*y G 0

根据 SQL Lite 文档 Sunday==0 并且 2012-01-01 是星期日,所以它吐出 00;

在这里查看 sqllite 的日期时间函数

http://www.sqlite.org/lang_datefunc.html