sql >> Database teknologi >  >> RDS >> SQLite

Sortere datoer i SQLite database?

I sqlite har ikke rigtig en datotype. Du kan gemme datoer som strenge ved hjælp af et af deres foruddefinerede formater, se http://www.sqlite.org/lang_datefunc.html for mere information.

En tidsstreng kan være i et af følgende formater:

YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD

Du skal gemme dem i ÅÅÅÅ-MM-DD, så kan du sortere dem efter asc-grænse 1 for at få den ældste dato. Så i stedet for

Column_Date
------------
Nov-07-2012
Nov-21-2012
Nov-25-2012
Oct-25-2012
Oct-24-2102

Du bliver nødt til at opbevare dem på denne måde i stedet

Column_Date
------------
2012-11-07
2012-11-21
2012-11-25
2012-10-25
2012-10-24

Til sidst læser du de eventuelle rækker

Cursor oldestDateCursor = db.query("DateTableName", null, null, null, null, null, "date_column ASC LIMIT 1");
if (oldestDateCursor.moveToFirst())
{
    String date = oldestDateCursor.getColumnName(oldestDateCursor.getColumnIndex("date_column"));
}
oldestDateCursor.close();


  1. Er der nogen forskel mellem IS NULL og =NULL

  2. Kaldning af lagret funktion eller procedure vil ikke indsætte og fortsætte ændringer

  3. Flere af mine foretrukne PostgreSQL-forespørgsler - og hvorfor de også betyder noget

  4. Hvordan opdaterer man alle kolonner med INSERT ... ON CONFLICT ...?