SQLite Timestamp Actuel avec Millisecondes?
Je suis le stockage d'un champ timestamp dans un SQLite3 colonne comme TIMESTAMP DATETIME DEFAULT CURRENT_TIMESTAMP
et je me demandais si il y avait un moyen pour qu'il comprennent millisecondes dans le timestamp ainsi?
- TIMESTAMP est le nombre de secondes qui se sont écoulées depuis le 1er janvier 1970 devinez vous aurez besoin d'un autre champ pour milisecondes
- POSIX temps est défini comme millisecondes écoulées depuis minuit 01-Jan-1970 UTC. Je dirais que l'utilisation de millisecondes que l'horodatage est ok aussi longtemps que vous êtes sûr que c'est POSIX temps (c'est à dire en UTC). Autrement, l'utilisation de millisecondes pour les locaux horodateurs est très inhabituel, et vous devriez utiliser un autre numérique temporelle des formats à la place. Voir: stackoverflow.com/questions/32670064/...
Vous devez vous connecter pour publier un commentaire.
Au lieu de
CURRENT_TIMESTAMP
, utilisez(STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW'))
de sorte que votre définition de la colonne de devenir:Par exemple:
%f
fait un peu bizarre par lui-même, c'est la même chose que d'OracleTO_DATE(... SS.FFF')
Pour obtenir le nombre de millisecondes écoulées depuis l'époque vous pouvez utiliser
julianday()
avec certains calculs supplémentaires:Voici une requête qui va générer un timestamp comme une chaîne de caractères avec des millisecondes:
Si vous êtes vraiment penché sur l'utilisation d'une représentation numérique, vous pouvez utiliser:
La méthode suivante ne nécessite pas de toute multiplie ou divise, et qui doivent toujours obtenir le résultat correct, comme plusieurs appels pour obtenir le "maintenant" dans une seule requête doit toujours retourner le même résultat:
L'génère le nombre de secondes et concatène à l'millisecondes partie de l'actuelle deuxième+milliseconde.