微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从会议室数据库获取当前月份

如何解决从会议室数据库获取当前月份

我不知道如何从Room数据库获取当前月份的数据

我尝试了一下,但是没有用,数据一直显示一个

@Query("SELECT * FROM transaksi WHERE strftime('%m',tanggal) = :tgl")
fun getData(tgl : String): List<Transaksi>

因此tanggal变量是Date类型。我正在使用TypeConverters,日期的格式重要吗?因为我将日期的格式设置为“ dd-MM-yyyy”。

解决方法

我认为返回类型不应该是表本身,而应具体说明返回类型:

尝试:

@Query("SELECT * FROM transaksi WHERE strftime = :tgl")
fun getData(tgl : String): List<String>
,

如果您使用Int保存Date,请尝试以下方法:

@Query("SELECT * FROM transaksi WHERE datetime(tanggal/1000,'unixepoch','start of month') = datetime(:dateOfMonth/1000,'start of month')")
fun getData(dateOfMonth : Date): List<Transaksi> // <-- changed parameter's type to Date

因此,您将日期放入方法(需要的月份中的任何月份),并在同一个月中获取所有带有日期的行

更新

要按月和年获得相同的结果,可以在DAO中添加另一个方法(但不带任何注释),然后调用上面提到的getDate方法:

fun getDataByMonthAndYear(month: Int,year: Int): List<Transaksi> {
    val calendar = Calendar.getInstance()
    calendar.set(year,month,1)
    val date = calendar.time
    return getData(date)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。