gpt4 book ai didi

java - 房间数据库函数 WEEK()、MONTH() 等

转载 作者:行者123 更新时间:2023-12-02 12:12:02 25 4
gpt4 key购买 nike

我有一个带有“条目”表的房间数据库,其中有 value(int) 列, cat_id(int)date(Date) .

我想得到当月所有条目和当周所有条目的总和。但是选择:

@Query("SELECT sum(value) FROM Entry WHERE cat_id = :cat_id AND WEEK(date, 5) = WEEK(:date, 5) AND YEAR(date) == YEAR(:date)")
float getValueThisWeekByCatId(int cat_id, Date date);

@Query("SELECT sum(value) FROM Entry WHERE cat_id = :cat_id AND MONTH(date) = MONTH(:date) AND YEAR(date) == YEAR(:date)")
float getValueThisMonthByCatId(int cat_id, Date date);

不工作。

这是错误:

There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such function: WEEK) float getValueThisWeekByCatId(int cat_id, Date date); Same with function MONTH



有没有另一种选择的方法?

最佳答案

有点晚了,但是由于类似的问题,我偶然发现了这个问题,而您在答案中使用 strftime 的解决方案是正确的。
尝试使用您的表格和查询,它对我有用:

 CREATE TABLE Entry(
id int primary key,
cat_id int,
value int,
date date
);

insert into entry (id, cat_id, value, date) values (1, 1, 50, '2019-03-19');
insert into entry (id, cat_id, value, date) values (2, 1, 30, '2019-02-20');

SELECT sum(value)
FROM Entry
WHERE cat_id = 1
AND strftime('%m', date) = strftime('%m', '2019-03-01')
AND strftime('%Y', date) = strftime('%Y', '2019-03-01')
也适用于 CURRENTDATE 但显然必须使用当前日期条目。
Example

关于java - 房间数据库函数 WEEK()、MONTH() 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55277151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com