Zoeken…


Opmerkingen

U moet MySQL versie 5.6.4 of hoger hebben om kolommen met fractionele-tweede keer datatypes te declareren.

DATETIME(3) geeft u bijvoorbeeld een resolutie van milliseconden in uw tijdstempels en TIMESTAMP(6) geeft u een resolutie van microseconden op een tijdstempel in * nix-stijl.

Lees dit: http://dev.mysql.com/doc/refman/5.7/en/fractional-seconds.html

NOW(3) geeft u de huidige tijd van het besturingssysteem van uw MySQL-server met milliseconde-precisie.

(Merk op dat MySQL interne fractionele rekenkunde, zoals * 0.001, altijd wordt behandeld als IEEE754 dubbele precisie drijvende punt, dus het is onwaarschijnlijk dat u precisie verliest voordat de zon een witte dwergster wordt.)

Krijg de huidige tijd met milliseconde-precisie

SELECT NOW(3)

doet het.

Download de huidige tijd in een vorm die eruit ziet als een Javascript-tijdstempel.

Javascript-tijdstempels zijn gebaseerd op het eerbiedwaardige gegevenstype UNIX time_t en tonen het aantal milliseconden sinds 1970-01-01 00:00:00 UTC.

Deze uitdrukking krijgt de huidige tijd als een geheel tijdstempel van Javascript. (Het doet dit correct, ongeacht de huidige instelling voor tijdzone.)

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

Als u TIMESTAMP waarden in een kolom hebt opgeslagen, kunt u deze als gehele Javascript-tijdstempels ophalen met de functie UNIX_TIMESTAMP ().

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

Als uw kolom DATETIME kolommen bevat en u ze ophaalt als Javascript-tijdstempels, worden die tijdstempels gecompenseerd door de tijdzone-offset van de tijdzone waarin ze zijn opgeslagen.

Maak een tabel met kolommen om de tweede seconde op te slaan.

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

maakt een tabel met milliseconde-precisie datum- / tijdvelden.

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

voegt een rij met NOW() waarden met milliseconde-precisie in de tabel in.

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

voegt specifieke milliseconde precisiewaarden in.

Merk op dat u NOW(3) moet gebruiken in plaats van NOW() als u die functie gebruikt om zeer nauwkeurige tijdwaarden in te voegen.

Converteer een milliseconde-precisie datum / tijdwaarde naar tekst.

%f is de specificatie voor fractionele precisie-indeling voor de functie DATE_FORMAT () .

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

geeft een waarde weer zoals 2016-11-19 09:52:53.248000 met fractionele microseconden. Omdat we NOW(3) hebben gebruikt, zijn de laatste drie cijfers in de breuk 0.

Sla een Javascript-tijdstempel op in een TIMESTAMP-kolom

Als u een Javascript-tijdstempelwaarde heeft, bijvoorbeeld 1478960868932 , kunt u die converteren naar een MySQL-fractionele tijdwaarde zoals deze:

FROM_UNIXTIME(1478960868932 * 0.001)

Het is eenvoudig om dat soort expressie te gebruiken om uw Javascript-tijdstempel in een MySQL-tabel op te slaan. Doe dit:

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

(Uiteraard wilt u andere kolommen invoegen.)



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow