Nic*_*ckF 1 sqlite android android-sqlite
假设我们有一个只有一个按钮的简单Android应用程序.
单击该按钮记录该单击的日期和时间(在sqlite中).
我想知道该记录的最佳格式是什么,保留一长串或一串日期时间.
目的是生成以下报告:
1.按小时分组的所选日期的点击总和.
2.按天分组的所选周数的总和.
3.按周分组的所选月份的点击总和.
4.按月分组的所选年份的点击总和.
如何创建此类数据库以及如何进行此类查询?
rut*_*ter 10
我投票支持使用Unix时间戳(自"epoch"以来的秒数),因为它们便于进行范围计算,并且可以被大多数强大的日期时间库所理解.
SQLite提供了一些辅助函数来处理Unix时间戳.这里最有用的是strftime
.
您可以strftime('%s', 'now')
在INSERT中使用插入当前的Unix时间戳.
稍后,如果您知道您感兴趣的特定时间范围,则可以计算该范围的最小和最大时间戳,并选择它们之间的行:
SELECT * FROM data
WHERE timestamp >= strftime('%s', '2012-12-25 00:00:00')
AND timestamp < strftime('%s', '2012-12-25 01:00:00');
Run Code Online (Sandbox Code Playgroud)
或者,假设您想按月计算一年的请求数:
SELECT strftime('%m', timestamp), count(*) FROM Data
WHERE timestamp >= strftime('%s', '2012-01-01 00:00:00')
AND timestamp < strftime('%s', '2013-01-01 00:00:00')
GROUP BY strftime('%m', timestamp);
Run Code Online (Sandbox Code Playgroud)
通过巧妙地使用格式选项strftime
提供,您可以很快地解决大多数这些查询.
归档时间: |
|
查看次数: |
6315 次 |
最近记录: |