我想将一个参数绑定到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"-将其操作数的两个字符串连接在一起