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.

InformationsquelleAutor menorah84 | 2015-07-29

2 Comentarios

  1. 12

    Del idioma manual:

    Convertir el tiempo de la cadena con el patrón dado a Unix marca de tiempo (en segundos)
    El resultado de esta función es en segundos.

    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

    • Gracias. Yo tengo mal en el sub-segunda parte. ss en lugar de MS. Todo trabaja ahora.
  2. 2

    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() y unix_timestamp() se utilizan para convertir de ida y vuelta desde el tiempo de la cadena.

    select unix_timestamp('2015-04-09 03:04:26') from dual;
    

    resultados en «1428566666»

    select from_unixtime(1428566666) from dual;
    

    resultados en «2015-04-09 03:04:26»

Dejar respuesta

Please enter your comment!
Please enter your name here