你好,我有 SLQLite 数据库,其中有表 water_logs
CREATE TABLE water_logs(
_id INTEGER PRIMARY KEY AUTOINCREMENT,
amount REAL NOT NULL,
icon INTEGER NOT NULL,
date INTEGER NOT NULL);
我以毫秒为单位存储日期。
Calendar cal = Calendar.getInstance();
cal.getTimeInMillis();
我的问题是我想使用日期列中的日期strftime
功能。问题是java日历时间戳与SQLite时间戳不同
1436859563832 --> result from cal.getTimeInMillis();
1436607407--> SELECT strftime('%s','now')
我实际上想做的是按天对记录进行分组。如果将 SELECT strftime('%s','now') 的值粘贴到日期列中,则以下 SQL 查询可以正常工作
SELECT SUM(amount), date(`date`) FROM water_logs
GROUP BY date(`date`, 'unixepoch')
在我看来,您正在使用两种不同的值类型。
当你使用
Calendar cal = Calendar.getInstance();
long time = cal.getTimeInMillis();
输出值为毫秒,如上所述here.
当你使用
strftime('%s','now')
输出值为Seconds,如上所述here.
因此,这可能是两个值之间不匹配的原因。
当然,以秒为单位的值可能会进行一些舍入,这可能会稍微改变它的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)