ghasem110deh
چهارشنبه 08 شهریور 1396, 23:21 عصر
سلام به همه :-)
دوستان من توی دیتابیس SQLite اطلاعات رو با تاریخ ذخیره میکنم
این تاریخ :
Calendar calendar = GregorianCalendar.getInstance();
DateFormat SEARCH_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
SEARCH_DATE = SEARCH_FORMAT.format(calendar.getTime());
اینم واسه گرفتم ماه و سال واسه (strftime)
Calendar calendar = GregorianCalendar.getInstance();
DateFormat YEAR_FORMAT = new SimpleDateFormat("yyyy");
DateFormat MONTH_FORMAT = new SimpleDateFormat("MM");
YEAR_DATE = YEAR_FORMAT.format(calendar.getTime());
MONTH_DATE = MONTH_FORMAT.format(calendar.getTime());
و با این کوئری ها دارم بر اساس سال و ماه فیلتر میکنم :
public List<Moment> MOMENT_YEAR(String year) {
try {
Moment MOMENT_TABLE;
List<Moment> MOMENTS = new ArrayList<>();
DB_HELPER.openDatabase();
db.beginTransaction();
Cursor MOMENT_CURSOR = db.rawQuery("SELECT * FROM tblMoment WHERE strftime('%Y', searchDate) =?", new String[]{year}, null);
db.setTransactionSuccessful();
MOMENT_CURSOR.moveToFirst();
while (!MOMENT_CURSOR.isAfterLast()) {
MOMENT_TABLE = new Moment(MOMENT_CURSOR.getInt(0), MOMENT_CURSOR.getString(1), MOMENT_CURSOR.getString(2), MOMENT_CURSOR.getString(3),
MOMENT_CURSOR.getString(4), MOMENT_CURSOR.getString(5), MOMENT_CURSOR.getInt(6), MOMENT_CURSOR.getInt(7) != 0);
MOMENTS.add(MOMENT_TABLE);
MOMENT_CURSOR.moveToNext();
}
MOMENT_CURSOR.close();
return MOMENTS;
} catch (Exception e) {
return null;
} finally {
db.endTransaction();
DB_HELPER.closeDatabase();
}
}
public List<Moment> MOMENT_MONTH(String month) {
try {
Moment MOMENT_TABLE;
List<Moment> MOMENTS = new ArrayList<>();
DB_HELPER.openDatabase();
db.beginTransaction();
Cursor MOMENT_CURSOR = db.rawQuery("SELECT * FROM tblMoment WHERE strftime('%m', searchDate) =?", new String[]{month}, null);
db.setTransactionSuccessful();
MOMENT_CURSOR.moveToFirst();
while (!MOMENT_CURSOR.isAfterLast()) {
MOMENT_TABLE = new Moment(MOMENT_CURSOR.getInt(0), MOMENT_CURSOR.getString(1), MOMENT_CURSOR.getString(2), MOMENT_CURSOR.getString(3),
MOMENT_CURSOR.getString(4), MOMENT_CURSOR.getString(5), MOMENT_CURSOR.getInt(6), MOMENT_CURSOR.getInt(7) != 0);
MOMENTS.add(MOMENT_TABLE);
MOMENT_CURSOR.moveToNext();
}
MOMENT_CURSOR.close();
return MOMENTS;
} catch (Exception e) {
return null;
} finally {
db.endTransaction();
DB_HELPER.closeDatabase();
}
}
توی ایمولیتور فیلتر انجام میشه ... ولی توی گوشی نه ! (منوی گوشی فارسی هست)
در واقع فارسی رو پشتیبانی میکنه، (روت نشده) ممکنه بخاطر اون باشه
و اگه ایراد از کده چرا توی ایمولیتور درست کار میکنه :متفکر:
دوستان من توی دیتابیس SQLite اطلاعات رو با تاریخ ذخیره میکنم
این تاریخ :
Calendar calendar = GregorianCalendar.getInstance();
DateFormat SEARCH_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
SEARCH_DATE = SEARCH_FORMAT.format(calendar.getTime());
اینم واسه گرفتم ماه و سال واسه (strftime)
Calendar calendar = GregorianCalendar.getInstance();
DateFormat YEAR_FORMAT = new SimpleDateFormat("yyyy");
DateFormat MONTH_FORMAT = new SimpleDateFormat("MM");
YEAR_DATE = YEAR_FORMAT.format(calendar.getTime());
MONTH_DATE = MONTH_FORMAT.format(calendar.getTime());
و با این کوئری ها دارم بر اساس سال و ماه فیلتر میکنم :
public List<Moment> MOMENT_YEAR(String year) {
try {
Moment MOMENT_TABLE;
List<Moment> MOMENTS = new ArrayList<>();
DB_HELPER.openDatabase();
db.beginTransaction();
Cursor MOMENT_CURSOR = db.rawQuery("SELECT * FROM tblMoment WHERE strftime('%Y', searchDate) =?", new String[]{year}, null);
db.setTransactionSuccessful();
MOMENT_CURSOR.moveToFirst();
while (!MOMENT_CURSOR.isAfterLast()) {
MOMENT_TABLE = new Moment(MOMENT_CURSOR.getInt(0), MOMENT_CURSOR.getString(1), MOMENT_CURSOR.getString(2), MOMENT_CURSOR.getString(3),
MOMENT_CURSOR.getString(4), MOMENT_CURSOR.getString(5), MOMENT_CURSOR.getInt(6), MOMENT_CURSOR.getInt(7) != 0);
MOMENTS.add(MOMENT_TABLE);
MOMENT_CURSOR.moveToNext();
}
MOMENT_CURSOR.close();
return MOMENTS;
} catch (Exception e) {
return null;
} finally {
db.endTransaction();
DB_HELPER.closeDatabase();
}
}
public List<Moment> MOMENT_MONTH(String month) {
try {
Moment MOMENT_TABLE;
List<Moment> MOMENTS = new ArrayList<>();
DB_HELPER.openDatabase();
db.beginTransaction();
Cursor MOMENT_CURSOR = db.rawQuery("SELECT * FROM tblMoment WHERE strftime('%m', searchDate) =?", new String[]{month}, null);
db.setTransactionSuccessful();
MOMENT_CURSOR.moveToFirst();
while (!MOMENT_CURSOR.isAfterLast()) {
MOMENT_TABLE = new Moment(MOMENT_CURSOR.getInt(0), MOMENT_CURSOR.getString(1), MOMENT_CURSOR.getString(2), MOMENT_CURSOR.getString(3),
MOMENT_CURSOR.getString(4), MOMENT_CURSOR.getString(5), MOMENT_CURSOR.getInt(6), MOMENT_CURSOR.getInt(7) != 0);
MOMENTS.add(MOMENT_TABLE);
MOMENT_CURSOR.moveToNext();
}
MOMENT_CURSOR.close();
return MOMENTS;
} catch (Exception e) {
return null;
} finally {
db.endTransaction();
DB_HELPER.closeDatabase();
}
}
توی ایمولیتور فیلتر انجام میشه ... ولی توی گوشی نه ! (منوی گوشی فارسی هست)
در واقع فارسی رو پشتیبانی میکنه، (روت نشده) ممکنه بخاطر اون باشه
و اگه ایراد از کده چرا توی ایمولیتور درست کار میکنه :متفکر: