我希望按周计算结果,并获取本周的开始日期和结束日期.我不知道如何做这个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表现得像这样.
试试这个:
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周.听起来很奇怪,特别是如果星期几开始!:■
根据 SQL Lite 文档 Sunday==0 并且 2012-01-01 是星期日,所以它吐出 00;
在这里查看 sqllite 的日期时间函数
http://www.sqlite.org/lang_datefunc.html
| 归档时间: |
|
| 查看次数: |
8134 次 |
| 最近记录: |