web-dev-qa-db-fra.com

Comment convertir des millisecondes à ce jour dans SQLite

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?

20

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
49
CL.

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

http://sqlfiddle.com/#!5/d41d8/22

22
Mit Bhatt

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

  • convertir des millisecondes dans votre requête, comme ceci
    select date(milliscolumn/1000,'unixepoch','localtime') from table1
  • convertir millis en secondes avant de l'enregistrer en db, puis utiliser la fonction date dans la requête sql
16
bsvtag