我按日期订购有问题。我将日期存储在我的数据库的TEXT字段中,当我尝试订购时,它没有给我带来正确的结果。
以下是我尝试过的一个查询示例。
Cursor cursor = databaseConnector.getDatabase().query(
TABELA_PRECIPITACAO,
COLUNAS_PRECIPITACAO,
COLUMN_PRECIPITACAO_PLUVIOMETRO_ID + " = " + pluviometroId,
null,
null,
null,
"strftime('%Y-%m-%d', '" + COLUMN_PRECIPITACAO_DATA_PRECIPITACAO + "' )" );
我尝试使用功能“date('+ COLUMN_PRECIPITACAO_DATA_PRECIPITACAO +”')“,但它看起来像按日期排序,但ASC或DESC不起作用。它总是带给我相同的顺序。
我知道我应该将日期存储为整数,但我不想更改它,我想要一个这样的解决方案。任何人都可以帮忙吗?感谢。
修改
不工作。我尝试过这两种方式:
Cursor cursor = databaseConnector.getDatabase().query(
TABELA_PRECIPITACAO,
COLUNAS_PRECIPITACAO,
COLUMN_PRECIPITACAO_PLUVIOMETRO_ID + " = " + pluviometroId,
null,
null,
null,
"date( " + COLUMN_PRECIPITACAO_DATA_PRECIPITACAO + " )" );
并且''
Cursor cursor = databaseConnector.getDatabase().query(
TABELA_PRECIPITACAO,
COLUNAS_PRECIPITACAO,
COLUMN_PRECIPITACAO_PLUVIOMETRO_ID + " = " + pluviometroId,
null,
null,
null,
"date( '" + COLUMN_PRECIPITACAO_DATA_PRECIPITACAO + "' )" );
答案 0 :(得分:2)
Select * from YourTable
Order by date(COLUMN_PRECIPITACAO_DATA_PRECIPITACAO)
或
Select * from YourTable
Order by datetime(COLUMN_PRECIPITACAO_DATA_PRECIPITACAO)
答案 1 :(得分:2)
DD-MM-YYYY
不是supported formats之一,因此strftime
函数(或date
)始终返回NULL。
更改您的日期库以使用格式yyyy-mm-dd
(在这种情况下,您无需调用任何日期函数;只需直接使用该值进行排序)。