【问题标题】:Using ROOM Dao - How I can get data of a table by comparing current date with date stored in table?使用 ROOM Dao - 如何通过将当前日期与表中存储的日期进行比较来获取表的数据?
【发布时间】:2019-10-25 10:35:55
【问题描述】:

我正在处理一个有 6 个单选按钮的活动,它们是(1-全部、2-今天、3-昨天、4-上周、5-本月、6-上个月)

问题是我不知道这个场景的确切查询会给我想要的数据。

我正在使用 ROOM 数据库,在 Dao 类中我必须编写查询,这些查询将根据单选按钮为我提供数据。

有一个日期和时间列存储数据存储在此表中的当前日期和时间,所以我必须将表的日期与今天、昨天等的日期匹配,并根据匹配的数据将被过滤。

这是我想要根据日期从中获取数据的实体类(表)。

@Entity
public class IncomeExpense  {
   @PrimaryKey(autoGenerate = true)
   private int id =0;

   private String type;
   private int amount;
   private String category;
   private String date;
   private String time;
   private String mode;
   private String note;

我只想要一个可以为我编写 Dao 查询和函数的人,它们将根据单选按钮给我过滤数据。

【问题讨论】:

    标签: android sql android-room


    【解决方案1】:

    我通过使用字符串格式的日期来实现这一点。像标准格式的日期08-12-2015. 在道课中,我使用以下查询来获取日期的记录。请注意,在我的实体类中,日期也是字符串格式。

    @Query("SELECT * from scan_data where sqlDate = date('now') ")
    List<Data> getTodayRecord();
    

    昨天的记录

    @Query("SELECT * from scan_data where sqlDate = date('now','-1 day')")
     List<Data> getYesterDayRecord();
    

    上周记录

    @Query("SELECT * FROM scan_data WHERE DATE(sqlDate) >= DATE('now', 'weekday 0', '-7 days')  AND DATE(sqlDate) != DATE('now')  AND DATE(sqlDate) != DATE('now','-1 day')")
    List<Data> getLastWeekRecord();
    

    每月记录

    @Query("SELECT * FROM scan_data WHERE strftime('%W',sqlDate) != strftime('%W',date('now')) AND strftime('%Y',sqlDate) = strftime('%Y',date('now')) AND  strftime('%m',sqlDate) = strftime('%m',date('now')) AND DATE(sqlDate) != DATE('now', 'weekday 0', '-7 days')  AND DATE(sqlDate) != DATE('now')  AND DATE(sqlDate) != DATE('now','-1 day')")
    List<Data> getLastMonthRecord();
    

    【讨论】:

    • 感谢您的支持...我会试试这个,请您给我写查询 getThisMonthRecord();我是编程新手
    • 事实上 getLastMonthRecord() 查询适用于每个月,包括本月和前几个月。
    • sqlDate 是表的列名..?
    • 是的,它是列的名称
    【解决方案2】:

    一开始,我使用private String date 而不是后来的private Date date,因此我无法按照我的意愿进行日期过滤。所以使用Date数据类型java.util.Date

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 2015-11-20
      • 1970-01-01
      • 2014-08-29
      • 2018-08-21
      相关资源
      最近更新 更多