2010-08-09 11 views
21

Sto provando a lavorare con le date in un database SQLite. Sto memorizzando le mie date come timestamp, ma quando uso strftime() per formattarle in date leggibili dall'uomo, sto tornando a risultati inaspettati.sqlite timestamp formattazione

Si consideri il seguente, seleziono il timestamp corrente:

SELECT strftime("%s","now"); 
1281353727 

Poi cerco di formattare una data utilizzando il timestamp che so di rappresentare la società in attesa di tornare in un formato leggibile in data odierna:

SELECT strftime('%d - %m - %Y ', 1281353727); 
01 - 04 - 3503 

Invece ho ottenuto il risultato sopra. È corretto questo comportamento? sto facendo qualcosa di sbagliato?

Grazie in anticipo,

Kevin

risposta

43

è necessario convertire il timestamp a datetime prima:

SELECT strftime('%d - %m - %Y ', datetime(1281353727, 'unixepoch')) FROM Visits; 
+0

C'è un modo per far stampare il mese nel testo? es .: agosto – Andrew

+0

Ciao reko, Se memorizzo questa data da Java dateObj.getTime(), allora funzionerà con l'opzione unixepoch nella funzione datetime? –

+3

Nel mio caso ho bisogno di dividere con 1000. –

4

Questo ha funzionato per me:

datetime(visit_date/1000000,'unixepoch')