Проблема здесь в том, что ваши литералы даты имеют нестандартный (и, вероятно, неправильный) формат. Обратите внимание на то, что выполняется следующее неравенство:
'2020-10-01' > '2020-1-01' AND '2020-10-01' < '2020-2-01'
Это верно, потому что текст 10
лексикографически больше, чем просто 1
, но также меньше 2
. Чтобы избежать этой проблемы, используйте правильные литералы даты:
String sql = "SELECT * FROM " + tableName + " WHERE SALESDATE BETWEEN '2020-01-01' AND '2020-02-01';"
Cursor cursor = db.rawQuery(sql, null);
Обратите внимание, что SQLite фактически не имеет формального типа даты. Таким образом, очень важно всегда хранить ваши даты в SQLite, используя правильный формат ISO.