Estoy bajo la impresión de que unix_timestamp y from_unixtime Colmena funciones son ‘invertir’ de cada uno de los otros.
Cuando intento convertir timestamp string a segundos de la Colmena:
SELECT unix_timestamp('10-Jun-15 10.00.00.000000 AM', 'dd-MMM-yy hh.mm.ss.MS a');
Puedo obtener 1418176800.
Cuando intento convertir 1418176800 timestamp string:
SELECT from_unixtime(1418176800, 'dd-MMM-yy hh.mm.ss.MS a');
Tengo 10-Dic-14 10.00.00.120 de la mañana, que obviamente no es igual a la original.
Puede alguien explicar lo que está pasando? Gracias.
Del idioma manual:
El resultado de cambios con el milisegundos parte de la fecha, pero el unix funciones de apoyo sólo segundos. Por ejemplo:
SELECT unix_timestamp('10-Jun-15 10.00.00 AM', 'dd-MMM-yy hh.mm.ss a');
1433930400
SELECT from_unixtime(1433930400, 'dd-MMM-yy hh.mm.ss a');
10-Jun-15 10.00.00 SOY
ss
en lugar deMS
. Todo trabaja ahora.No uso de unix_timestamp como tienes en tu segunda consulta. Además, su declaración tiene un formato en el que da el resultado donde el DEC se utiliza en steads de 12. Ver
dd-MM-yy
. No se especifica un formato y se debe trabajar. Vea los ejemplos a continuación.Sin embargo es correcto que
from_unixtime()
yunix_timestamp()
se utilizan para convertir de ida y vuelta desde el tiempo de la cadena.resultados en «1428566666»
resultados en «2015-04-09 03:04:26»