Je stocke la date de Calendar.getTimeInMilliseconds () dans SQLite DB. J'ai besoin de marquer les premières lignes tous les mois dans l'instruction SELECT, j'ai donc besoin de convertir le temps en millisecondes dans n'importe quel format de date en utilisant la fonction SQLite uniquement. Comment puis-je éviter ça?
L'un des formats de date/heure pris en charge par SQLite est les horodatages Unix, c'est-à-dire les secondes depuis 1970. Pour convertir des millisecondes en cela, il suffit de diviser par 1000.
Ensuite, utilisez un peu fonction date/heure pour obtenir l'année et le mois:
SELECT strftime('%Y-%m', MillisField / 1000, 'unixepoch') FROM MyTable
Datetime attend epochtime, qui est en nombre de secondes pendant que vous passez en millisecondes. Convertissez en secondes et appliquez.
SELECT datetime(1346142933585/1000, 'unixepoch');
Peut vérifier cela à partir de ce violon
Avez-vous besoin d'éviter la conversion de millisecondes en date ou de convertir les millisecondes en date? Étant donné que les fonctions de date sqlite fonctionnent avec des secondes, vous pouvez essayer de
select date(milliscolumn/1000,'unixepoch','localtime') from table1