Convertir marca de tiempo Unix de fecha y hora con milisegundos en MySQL

kexxcream:

Problema

La conversión de marca de tiempo Unix de fecha y hora, manteniendo milisegundos.

Antecedentes

Estoy recibiendo marca de tiempo Unix en el siguiente formato:

  • 1584049707

Entonces estoy tratando de enviarla por medio de PHP a una columna en MySQL que está datetime(3)utilizando TO_TIMESTAMP(). También he intentado FROM_UNIXTIME(), pero con los mismos resultados.

SQL

$sql = "
  INSERT INTO assoc_table (timestart, timeend) 
  VALUES (TO_TIMESTAMP(:timestart), TO_TIMESTAMP(:timeend))
";

Resultado

  • 12/03/2020 22: 42: 23.000

Por alguna razón, no registra los milisegundos.

Resultado deseado

  • Para obtener los milisegundos de la marca de tiempo Unix y en la columna de fecha y hora.
GMB:

Marcas de tiempo Epoch representan entonces número de segundos transcurridos desde el 1 de enero de, 1970; si quieres secons fraccionarias, se necesita tener una parte fraccionaria ... lo cual no es el caso de la entrada que se le da a MySQL; esto se refleja a continuación, en los resultados que usted está recibiendo.

Dada una marca de tiempo época con una parte fraccionaria, from_unixtime()funciona como se espera:

select from_unixtime(1584049707.123)

Devoluciones:

2020-03-12 21:48:27.123

Nota: datetime(3)es el formato relevante para almacenar dicho valor.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=279842&siteId=1
Recomendado
Clasificación