房间数据库,SELECT * 从 table 到给定的一天
Room database, SELECT * FROM table by a given day
我正在使用 Room Persistence Library in my Android project, and store date using date type converter:
object DateConverter {
@TypeConverter
@JvmStatic
fun fromTimestamp(value: Long?): Date? = if (null == value) null else Date(value)
@TypeConverter
@JvmStatic
fun dateToTimestamp(date: Date?): Long? = date?.time
}
如何使用 Room DAO 在给定的 天 之前从我的 table 中 select?
@Query("SELECT * FROM table_name WHERE date BETWEEN :dayst AND :dayet")
Object getFromTable(long dayst, long dayet);
日期 dayst
将是 00:00 的时间戳,即 09/11/2017 00:00:00
日期 dayet
将是 23:59 的时间戳,即 09/11/2017 23:59:59
Object
是您从数据库中获取的内容。
让它更简单。
@Query("SELECT * FROM table_name WHERE date BETWEEN :daystart AND :dayend")
List<Student> fetchAllData(long start,long end);
我已经通过微调器获取了日、月和年的值。
您可以像这样使用它(使用字符串和 DateTypeConvertor 而不是 Long)
道:
@Query("SELECT * FROM MILKMANTABLE WHERE strftime('%Y',date) IN(:year) AND strftime('%m',date) IN(:month) AND strftime('%d',date) IN(:day)")
List<MilkMan> getMonthDetails(String day, String month, String year);
您可以使用此转换器 class 将日期类型转换并保存为房间 table
中的字符串
DateTypeConverter :
public class DateConverter {
static DateFormat df = new SimpleDateFormat(Constants.DOB_FORMAT);
@TypeConverter
public static Date fromTimestamp(String value) {
if (value != null) {
try {
return df.parse(value);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
} else {
return null;
}
}
@TypeConverter
public static String dateToTimestamp(Date value) {
return value == null ? null : df.format(value);
}
}
在 Constants.java:
public static String DOB_FORMAT = "YYYY-MM-dd";
我正在使用 Room Persistence Library in my Android project, and store date using date type converter:
object DateConverter {
@TypeConverter
@JvmStatic
fun fromTimestamp(value: Long?): Date? = if (null == value) null else Date(value)
@TypeConverter
@JvmStatic
fun dateToTimestamp(date: Date?): Long? = date?.time
}
如何使用 Room DAO 在给定的 天 之前从我的 table 中 select?
@Query("SELECT * FROM table_name WHERE date BETWEEN :dayst AND :dayet")
Object getFromTable(long dayst, long dayet);
日期 dayst
将是 00:00 的时间戳,即 09/11/2017 00:00:00
日期 dayet
将是 23:59 的时间戳,即 09/11/2017 23:59:59
Object
是您从数据库中获取的内容。
让它更简单。
@Query("SELECT * FROM table_name WHERE date BETWEEN :daystart AND :dayend")
List<Student> fetchAllData(long start,long end);
我已经通过微调器获取了日、月和年的值。 您可以像这样使用它(使用字符串和 DateTypeConvertor 而不是 Long)
道:
@Query("SELECT * FROM MILKMANTABLE WHERE strftime('%Y',date) IN(:year) AND strftime('%m',date) IN(:month) AND strftime('%d',date) IN(:day)")
List<MilkMan> getMonthDetails(String day, String month, String year);
您可以使用此转换器 class 将日期类型转换并保存为房间 table
中的字符串DateTypeConverter :
public class DateConverter {
static DateFormat df = new SimpleDateFormat(Constants.DOB_FORMAT);
@TypeConverter
public static Date fromTimestamp(String value) {
if (value != null) {
try {
return df.parse(value);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
} else {
return null;
}
}
@TypeConverter
public static String dateToTimestamp(Date value) {
return value == null ? null : df.format(value);
}
}
在 Constants.java:
public static String DOB_FORMAT = "YYYY-MM-dd";