2010-09-30 10 views

risposta

42

Ecco una list di tipi di dati di SQLite

data e l'ora sono supportati indirectly.

+7

supportato indirettamente? –

+1

Penso che la data e l'ora possano essere solo inserite come stringa –

+0

Oppure utilizzando UNIX timestamp e salvandole come INTEGER, anche BOOLEAN è memorizzato come INTEGER 0 o 1 – Sourabh

30

Come detto Datatypes In SQLite Version 3:

Ogni valore memorizzato in un database SQLite (o manipolati dal motore di database) presenta una delle seguenti classi di memoria:

  • NULL. Il valore è un valore NULL.

  • INTEGER. Il valore è un numero intero con segno, memorizzato in 1, 2, 3, 4, 6 o 8 byte a seconda della grandezza del valore.

  • REAL. Il valore è un valore in virgola mobile, memorizzato come numero in virgola mobile IEEE a 8 byte.

  • TEXT. Il valore è una stringa di testo, memorizzata utilizzando la codifica del database (UTF-8, UTF-16BE o UTF-16LE).

  • BLOB. Il valore è un blob di dati, memorizzato esattamente come è stato inserito.

E per il tempo e lo stoccaggio DATA la seguente legge:

data e ora tipo di dati

SQLite non dispone di una classe di archiviazione mettere da parte per le date di stoccaggio e/o tempi. Invece, la data e ora Le funzioni incorporate di SQLite sono in grado di memorizzare date e orari come TEXT, REAL, o valori interi:

  • TESTO stringhe come ISO8601 ("AAAA-MM-GG HH: MM : SS.SSS ").
  • REALE come numero di giorni giuliani, il numero di giorni da mezzogiorno a Greenwich il 24 novembre, 4714 a.C. secondo il calendario gregoriano prolettico.
  • INTEGER come Tempo Unix, il numero di secondi dal 1970-01-01 00:00:00 UTC.
1

Prima di tutto verificare la versione del Sqlite3 per ogni versione API Android: https://stackoverflow.com/a/4377116/737636

Non credo che questo sia l'elenco completo delle versioni e penso che anche OEM può cambiare la versione del SQLite installato all'interno.

In ogni caso, se si prende un rapido sguardo si può vedere che la versione base è 3.x

Questa è la lista dei tipi di dati supportati da SQLite3 (lo stesso utilizzato all'interno Android): http://www.sqlite.org/datatype3.html

e eccoti :)

-2
public static Object getValue(Cursor cursor, String columnName) { 
    int index = cursor.getColumnIndex(columnName); 
    if(index == -1){ 
     throw new ColumnNotFoundException(columnName, "table"); 
    } 
    if(cursor.isNull(index)){ 
     return null; 
    } 
    int type = cursor.getType(index); 
    switch (type){ 
     case Cursor.FIELD_TYPE_INTEGER: 
      return cursor.getLong(index); 
     case Cursor.FIELD_TYPE_STRING: 
      return cursor.getString(index); 
     case Cursor.FIELD_TYPE_FLOAT: 
      return cursor.getFloat(index); 
     case Cursor.FIELD_TYPE_BLOB: 
      return cursor.getBlob(index); 
     default: 
      throw new UnknownTypeException(columnName); 
    } 
} 
+2

Questo non fornisce un elenco di tipi di dati in sqlite3. Basta codice senza spiegazione – Dediqated

+0

Thsnks: D, lo modificherò –

Problemi correlati