Ricerca…


Osservazioni

È necessario essere in MySQL versione 5.6.4 o successive per dichiarare le colonne con i tipi di dati del tempo frazionario.

Ad esempio, DATETIME(3) ti darà una risoluzione in millisecondi nei tuoi timestamp e TIMESTAMP(6) ti darà una risoluzione in microsecondi su un timestamp in stile * nix.

Leggi questo: http://dev.mysql.com/doc/refman/5.7/en/fractional-seconds.html

NOW(3) ti darà il tempo presente dal sistema operativo del tuo server MySQL con precisione millisecondo.

(Si noti che l'aritmetica interna frazionaria di MySQL, come * 0.001, viene sempre gestita come IEEE754 in virgola mobile a doppia precisione, quindi è improbabile che si perda precisione prima che il Sole diventi una stella nana bianca.)

Ottieni l'ora corrente con precisione millisecondo

SELECT NOW(3)

fa il trucco

Ottieni l'ora corrente in un modulo simile a un timestamp in Javascript.

I timestamp di Javascript si basano sul tipo di dati time_t UNIX venerabile e mostrano il numero di millisecondi dal 1970-01-01 00:00:00 UTC.

Questa espressione ottiene l'ora corrente come numero intero di timestamp JavaScript. (Lo fa correttamente indipendentemente dall'attuale impostazione time_zone.)

 ROUND(UNIX_TIMESTAMP(NOW(3)) * 1000.0, 0)

Se si dispone di valori TIMESTAMP memorizzati in una colonna, è possibile recuperarli come timestamp JavaScript intero utilizzando la funzione UNIX_TIMESTAMP ().

  SELECT ROUND(UNIX_TIMESTAMP(column) * 1000.0, 0)

Se la colonna contiene colonne DATETIME e le si recupera come timestamp JavaScript, tali timestamp verranno compensati dall'offset fuso orario del fuso orario in cui sono memorizzati.

Crea una tabella con colonne per archiviare una volta al secondo.

CREATE TABLE times (
     dt DATETIME(3), 
     ts TIMESTAMP(3)
 );

crea una tabella con campi data / ora con precisione millisecondo.

 INSERT INTO times VALUES (NOW(3), NOW(3));

inserisce una riga contenente valori NOW() con precisione millisecondo nella tabella.

 INSERT INTO times VALUES ('2015-01-01 16:34:00.123','2015-01-01 16:34:00.128');

inserisce valori di precisione millisecondi specifici.

Si noti che è necessario utilizzare NOW(3) anziché NOW() se si utilizza tale funzione per inserire valori temporali di alta precisione.

Convertire un valore di data / ora di precisione millisecondo in testo.

%f è l'identificatore di formato con precisione frazionaria per la funzione DATE_FORMAT () .

SELECT DATE_FORMAT(NOW(3), '%Y-%m-%d %H:%i:%s.%f')

visualizza un valore come 2016-11-19 09:52:53.248000 con microsecondi frazionari. Perché abbiamo usato NOW(3) , le ultime tre cifre nella frazione sono 0.

Memorizza un timestamp Javascript in una colonna TIMESTAMP

Se si dispone di un valore di timestamp JavaScript, ad esempio 1478960868932 , è possibile convertirlo in un valore temporale frazionario MySQL come questo:

FROM_UNIXTIME(1478960868932 * 0.001)

È semplice usare quel tipo di espressione per memorizzare il timestamp di Javascript in una tabella MySQL. Fai questo:

INSERT INTO table (col) VALUES (FROM_UNIXTIME(1478960868932 * 0.001))

(Ovviamente, ti consigliamo di inserire altre colonne.)



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow