如何使用room将Query参数绑定到datetime



我想将一个参数绑定到sql查询的datetime方法中。你可以在下面看到我所尝试的。我也尝试过enum,但似乎enum是通过enum的名称解析的,我不能给-7天作为enum的值

我希望代码生成的查询如下所示:

SELECT * FROM Part where Timestamp > datetime('now' ,'-7 days')

代码# 1

@Query("SELECT * FROM Part where Timestamp >datetime('now' ,'-'+:days+'days')")
List<Part> getPastDays(int days);

生产查询# 1

(是不正确的,因为它不获取数据)

SELECT * FROM Part where Timestamp >datetime('now' ,'-'+'7'+'days')

代码#2(未编译->error: Unused parameter: days)

@Query("SELECT * FROM Part where Timestamp >datetime('now' ,'- :days days')")
List<Part> getPastDays(int days);

代码# 3

@Query("SELECT * FROM Part where Timestamp >datetime('now' ,'-' /:days/ 'days')")
List<Part> getPastDays(int days);

产生查询#3(不正确,因为没有返回数据)

SELECT * FROM Part where Timestamp >datetime('now' ,'-' /'7'/ 'days')

SQLite SQL连接是|| so:-

@Query("SELECT * FROM Part where Timestamp >datetime('now' ,'-'||:days||' days')")
List<Part> getPastDays(int days);

按照,运算符为"concatenate"-将其操作数的两个字符串连接在一起

最新更新