1

在我的 android 应用程序中,我使用 sqlite 来存储数据行。每天会有多行,并且在每一行上也有一个以毫秒为单位的日期时间。

例如

millis, col1, col2, num
xxxx,   abc,  xyz,  24
xxxx,   abc,  xyz,  24
xxxx,   abc,  xyz,  24
xxxx,   abc,  xyz,  24

我可以有一个查询,可以按天(即 24 日、25 日、26 日等)对毫秒列进行分组,并给出我的 num col 的平均值吗?

例如输出:

    Date         avg
    2013-11-08   20
    2013-11-07   24
4

2 回答 2

2

SQLite 的Unix 时间格式以秒为单位,你必须先除以 1000。然后您可以使用日期函数之一来获取时间戳的日期部分:

SELECT DATE(millis / 1000, 'unixepoch') AS Date,
       AVG(num) AS avg
FROM MyTable
GROUP BY Date
于 2013-08-11T07:34:26.330 回答
-1

使用 from_unixtime 将毫秒转换为日期,然后将该值包装到 DATE() 函数中,以仅保留日期部分,忽略小时、分钟和秒。

查询的其余部分是微不足道的。

  SELECT DATE(FROM_UNIXTIME(millis)) AS date,
         AVG(num) AS average
    FROM table_name
GROUP BY date
于 2013-08-11T03:02:45.737 回答