95 votes

CURRENT_TIMESTAMP en millisecondes

Existe-t-il un moyen d'obtenir des millisecondes d'un horodatage en MySql ou PostgreSql (ou d'autres par curiosité) ?

 SELECT CURRENT_TIMESTAMP
--> 2012-03-08 20:12:06.032572

Y a-t-il quelque chose comme ça :

 SELECT CURRENT_MILLISEC
--> 1331255526000

ou la seule alternative est d'utiliser le DATEDIFF du era ?

75voto

Claudio Holanda Points 1847

Pour MySQL (5.6+), vous pouvez faire ceci :

 SELECT ROUND(UNIX_TIMESTAMP(CURTIME(4)) * 1000)

Qui reviendra (ex) :

 1420998416685 --milliseconds

38voto

jbaylina Points 1241

Dans mysql, il est possible d'utiliser la fonction uuid pour extraire des millisecondes.

 select conv( 
            concat(
                   substring(uid,16,3), 
                   substring(uid,10,4), 
                   substring(uid,1,8))
                   ,16,10) 
            div 10000 
            - (141427 * 24 * 60 * 60 * 1000) as current_mills
from (select uuid() uid) as alias;

Résultat:

 +---------------+
| current_mills |
+---------------+
| 1410954031133 |
+---------------+

Cela fonctionne également dans les anciennes versions de mysql !

Merci à cette page : http://rpbouman.blogspot.com.es/2014/06/mysql-extracting-timstamp-and-mac.html

18voto

Ahmed Points 207

Dans Mysql 5.7+, vous pouvez exécuter

 select current_timestamp(6)

pour plus de détails

https://dev.mysql.com/doc/refman/5.7/en/fractional-seconds.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X