我有问题,按日期排序。我存储日期的文本字段我DATEBASE,当我试图订购它不给我正确的结果。
下面是我已经尝试了查询的例子。
光标光标= databaseConnector.getDatabase()查询(
TABELA_ preCIPITACAO,
COLUNAS_ preCIPITACAO,
COLUMN_ preCIPITACAO_PLUVIOMETRO_ID +=+ pluviometroId,
空值,
空值,
空值,
的strftime(%Y-%M-%D','+ COLUMN_ preCIPITACAO_DATA_ preCIPITACAO +'));
我试图用funcion日期('+ COLUMN_ preCIPITACAO_DATA_ preCIPITACAO +'),但它看起来像它按日期排序,但ASC或DESC不起作用。这总是给我以相同的顺序。
我知道我应该保存日期为整数,但我不想改变它知道,我想这样的一个解决方案。任何一个可以帮助?谢谢你。
编辑:
不工作。我已经试过这两种方式:
光标光标= databaseConnector.getDatabase()查询(
TABELA_ preCIPITACAO,
COLUNAS_ preCIPITACAO,
COLUMN_ preCIPITACAO_PLUVIOMETRO_ID +=+ pluviometroId,
空值,
空值,
空值,
日期(+ COLUMN_ preCIPITACAO_DATA_ preCIPITACAO +));
和与''
光标光标= databaseConnector.getDatabase()查询(
TABELA_ preCIPITACAO,
COLUNAS_ preCIPITACAO,
COLUMN_ preCIPITACAO_PLUVIOMETRO_ID +=+ pluviometroId,
空值,
空值,
空值,
日期('+ COLUMN_ preCIPITACAO_DATA_ preCIPITACAO +'));
解决方案
DD-MM-YYYY
不是的支持的格式,因此的strftime
函数(或日期
)总是返回NULL。
更改DATEBASE使用格式为: YYYY-MM-DD
(在这种情况下,你不需要调用任何日期的功能,只需直接使用值进行排序)。
I'm having problems to order by date. I'm storing date in a TEXT field at my datebase, when I try to order it doesn't bring me the right result.
Here is an example of a query that i have tried.
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 + "' )" );
I've tried to use the funcion "date(' + COLUMN_PRECIPITACAO_DATA_PRECIPITACAO + "')", but it looks like it's ordering by date, but ASC or DESC doesn't work. It always bring me in the same order.
I know that I should store date as a integer, but I don't want to change it know and I want a solution like that. Any one can help? Thanks.
Edit:
Not working. I've tried those two ways:
Cursor cursor = databaseConnector.getDatabase().query(
TABELA_PRECIPITACAO,
COLUNAS_PRECIPITACAO,
COLUMN_PRECIPITACAO_PLUVIOMETRO_ID + " = " + pluviometroId,
null,
null,
null,
"date( " + COLUMN_PRECIPITACAO_DATA_PRECIPITACAO + " )" );
And with ''
Cursor cursor = databaseConnector.getDatabase().query(
TABELA_PRECIPITACAO,
COLUNAS_PRECIPITACAO,
COLUMN_PRECIPITACAO_PLUVIOMETRO_ID + " = " + pluviometroId,
null,
null,
null,
"date( '" + COLUMN_PRECIPITACAO_DATA_PRECIPITACAO + "' )" );
解决方案
DD-MM-YYYY
is not one of the supported formats, so the strftime
function (or date
) always returns NULL.
Change your datebase to use the format yyyy-mm-dd
(in which case you don't need to call any date function; just use the value directly for sorting).