我花了很多时间阅读,仍然无法找到最佳解决方案。我正在设计Android卡路里计数器应用程序,并使用SQLite。 我有一张表food_logs
其中我有2个字段:log_date(NUMBER) , food_id(NUMBER)
。我将日期保存为unix时间戳。我想检索一个人在几天前吃过的所有食物。GROUP BY时间戳值范围
例如今天或2012-05-20(昨天)吃的所有食物。我正在搜索GROPBY时间戳,但我无处可去。
或者我只需要保存日期作为字符串(我认为这是不是最好的做法)
我花了很多时间阅读,仍然无法找到最佳解决方案。我正在设计Android卡路里计数器应用程序,并使用SQLite。 我有一张表food_logs
其中我有2个字段:log_date(NUMBER) , food_id(NUMBER)
。我将日期保存为unix时间戳。我想检索一个人在几天前吃过的所有食物。GROUP BY时间戳值范围
例如今天或2012-05-20(昨天)吃的所有食物。我正在搜索GROPBY时间戳,但我无处可去。
或者我只需要保存日期作为字符串(我认为这是不是最好的做法)
您可以在UNIX时间戳转换成字符串值,而查询你的表。只要看看SQLite date funcitons。
例如,你可以使用下面的代码在您的查询:您的表
SELECT food_id, COUNT(*) FROM food_logs GROUP BY date(log_date, 'unixepoch');
各种时间戳值将有时针,分针的不同值,第二。 SQL的GROUP BY用于收集具有相同值的多个行,因此语法在此处不起作用。如果你只需要一天的值得总结的数据,你可以做这样的事情,假设你有一个表food_info的列food_id和CALORIE_COUNT:
SELECT SUM(calorie_count)
FROM food_logs fl INNER JOIN food_info fi ON fi.food_id = fl.food_id
WHERE log_date >= '2012-21-05' AND log_date < '2012-21-06'
您可能需要调整这一点,以适应SQLLite的具体语义。
什么是“GROPBY时间戳”? – 2012-05-21 20:02:09