【问题标题】:SQLite group by range with arbitrary starting number and fixed intervalSQLite 按范围分组,具有任意起始编号和固定间隔
【发布时间】:2015-06-26 11:56:43
【问题描述】:

我有一个包含每日信息的 SQLite 表。它以年份和年份的形式存储。

我想知道如何按周分组(可以从任何一天开始)并对几个字段求和,或者是否以编程方式进行。架构(有点过时)是:

_id      INTEGER PRIMARY KEY AUTOINCREMENT,
hYear    INTEGER,
hDay     INTEGER,
hTime    INTEGER,
hMinutes INTEGER,
lunch    INTEGER,
payWeek  INTEGER,
yearWeek INTEGER

还有一些示例数据:

17|2015|96|27000000|630|30|13|15
18|2015|97|27000000|240|0|13|15
19|2015|98|27000000|510|30|13|15
20|2015|99|27000000|300|30|13|15
21|2015|101|26100000|645|30|13|15
31|2015|103|26100000|645|30|13|16
32|2015|104|27000000|555|30|14|16
33|2015|105|27000000|570|30|14|16
34|2015|106|27000000|420|30|14|16
35|2015|107|26100000|630|30|14|16
36|2015|108|26100000|495|30|14|16

我想从一周中的任何一天开始一周,并总结 7 天的两列并将其传递给 CursorAdapter

【问题讨论】:

    标签: android sqlite group-by


    【解决方案1】:

    要将日期转换为SQLite's built-in date/time functions 可以理解的格式,请将字符串-01-01 附加到年份,使用julianday 函数将该日期转换为儒略日数,然后添加年份数(然后修复一个错误)。

    要查找下一个特定的工作日,请使用带有weekday N 修饰符的日期函数。 要找到上一个特定的工作日,请减去 7 天。

    该值可用于 GROUP BY。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 2011-03-02
      • 1970-01-01
      • 2017-03-22
      • 2012-09-11
      • 1970-01-01
      相关资源
      最近更新 更多