首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Room :按自定义日期返回行,i.e -7day等

Android Room :按自定义日期返回行,i.e -7day等
EN

Stack Overflow用户
提问于 2020-05-29 07:04:02
回答 1查看 43关注 0票数 0

我检查了我的房间数据库,从字符串日期到日期,它被存储为一个使用类型转换器的Long类型。我无法过滤特定时间的结果,例如-7天或3个月等。以下是我的配置:

查询

代码语言:javascript
复制
 SELECT *
 FROM moodBeforetable
 WHERE moodBeforetable.workoutDate >= datetime('now', '-1 year')
 ORDER BY moodBeforetable.workoutDate DESC
 LiveData<List<WorkoutLogsAllPojo>> getAllMoodLogs();

当WHERE子句被注释掉时,查询可以正常工作,但是,如果我在上面包含该行,则不会返回任何数据。

此moodBeforetable.workoutDate变量是一个日期,但它在数据库中存储为Long :1590705660000

类型转换器

代码语言:javascript
复制
    @TypeConverter
    public static Date toDate(Long timestamp){
    return timestamp == null ? null : new Date(timestamp);
    }

    @TypeConverter
    public static Long toTimestamp(Date date){
    return date == null ? null : date.getTime();
    }  

任何关于WHERE子句没有返回任何数据或指定行数的根本原因的帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-29 07:31:38

函数datetime('now', '-1 year')返回的时间戳格式为‘%Y-%m-%d%H:%M:%S’,例如2019-05-28 23:29:42 (docs)。要获取自纪元以来的毫秒数,请改用1000 * strftime('%s', datetime('now', '-1 year'))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62075961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档