排序按日期“DD-MM-YYYY”格式格式、按日、MM、DD

2023-09-04 03:06:47 作者:没有才华

我有问题,按日期排序。我存储日期的文本字段我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 +));
 
Excel 如何将YYYYMMDD日期格式改为YYYY MM DD格式

和与''

 光标光标= 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).