Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: dimitrix en 19 Enero 2015, 03:46 am



Título: timestamp de 10 dígitos...
Publicado por: dimitrix en 19 Enero 2015, 03:46 am
Pues mi problema creo que debe ser bastante normal...

Tengo montado un sistema que guarda en una columna llamada  "times" el timestamp, es decir los 10 dígitos por ejemplo (1415192456).

He visto que existen funciones para guardar la fecha, pero mi pregunta es ¿Existe alguna para guardar el timestamp? Y de no existir... ¿Por qué?

Y no, no me sirve hacer una función en PHP para convertirlo...


Título: Re: timestamp de 10 dígitos...
Publicado por: Gh057 en 19 Enero 2015, 05:29 am

Hola dimitrix, necesitarías en mysql hacer uso del now por ejemplo (te indique recién current_timestamp pero te tirara error ya que permite uno por tabla...), mas info en
http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
saludos
perdón... 10 dígitos? como seria el formato?
aaaah ahora caigo jejeje (debe ser el sueño) te estas refiriendo solo a la hora, a poder guardar milisegundos... bueno de forma nativa no hay nada al respecto. en el mismo sitio hacen referencia a ese bug, hay una solución que es agregar una columna para los decimales y de esa forma luego tomarla con timestamp...


Título: Re: timestamp de 10 dígitos...
Publicado por: MinusFour en 19 Enero 2015, 06:41 am
Yo no acabo de entende dices que tienes en un sitema una columna llamada times que guarda el timestamp y luego preguntas que si existe alguna funcion para guardar el timestamp. ¿Que no lo haces ya?


Título: Re: timestamp de 10 dígitos...
Publicado por: Gh057 en 19 Enero 2015, 07:02 am
Según entendí, guarda los diez dígitos, pero se los debe dejar en cero los últimos...(si toma de a dos dígitos para  días horas minutos segundos y milisegundos) El problema esta tratado en el mismo sitio. (ya hace varios años... sinceramente no se porque no lo han corregido) Una posible solución es como indicaba hacer un campo decimal, pasarle el valor 1415192,456 y tomarlo luego por ejemplo con time...

(agrego) acabo de probar y no le encuentro la vuelta para hacerlo con tan pocos dígitos... solo completando el campo decimal con 17 (incluyes el año y el dia), de los cuales tomas 3 para las milésimas. Ahí si ya puedes truncar la salida al cronometro consultando con time. Sino explota todo jej Me voy a dormir! en un rato vuelvo XD


Título: Re: timestamp de 10 dígitos...
Publicado por: dimitrix en 19 Enero 2015, 16:16 pm
Sorry, estaba medio dormido, lo que buscaba es esto: UNIX_TIMESTAMP();

http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_unix-timestamp


Título: Re: timestamp de 10 dígitos...
Publicado por: Gh057 en 19 Enero 2015, 17:08 pm
jajaajaa bueno me alegro haber dado en el punto con la referencia... y que me haya ido a dormir, porque sino seguía delirando XD un cordial saludo


Título: Re: timestamp de 10 dígitos...
Publicado por: JorgeEMX en 23 Enero 2015, 04:57 am
Yo lo que no entiendo es para que quieres guardar timestamps tal cuál pudiendo guardarlo en formato normal, en un capo timestamp, que cualquier humano entendería (aparte de hacer consultas más fácil). Como sea,  si es algo más técnico cualquier lenguaje de programación podrías obtenerlo y jugar, a partir de ahí, con lo que quisieras.

Saludos


Título: Re: timestamp de 10 dígitos...
Publicado por: dimitrix en 23 Enero 2015, 15:11 pm
Yo lo que no entiendo es para que quieres guardar timestamps tal cuál pudiendo guardarlo en formato normal, en un capo timestamp, que cualquier humano entendería (aparte de hacer consultas más fácil). Como sea,  si es algo más técnico cualquier lenguaje de programación podrías obtenerlo y jugar, a partir de ahí, con lo que quisieras.

Saludos

Bueno, el timestamp te da hasta el segundo exacto. Realmente para lo que lo voy a usar necesito el timestamp, si fuera un log o algo así me daría más igual.


Título: Re: timestamp de 10 dígitos...
Publicado por: Gh057 en 23 Enero 2015, 15:20 pm
Así es dimitrix. Ya sabes, si necesitas de las milésimas, el campo donde guardas el tiempo debe ser de tipo decimal de 17 dígitos (guardas tanto el año como el día y el tiempo en  sí) y defines 3 de ellos para las milésimas. guardas el tiempo en crudo (ejemplo 20150122111915.435) y lo tomas con TIME. (traerá algo como 11:19:15.435)
saludos


Título: Re: timestamp de 10 dígitos...
Publicado por: JorgeEMX en 23 Enero 2015, 17:17 pm
Bueno, el timestamp te da hasta el segundo exacto. Realmente para lo que lo voy a usar necesito el timestamp, si fuera un log o algo así me daría más igual.

A partir de la versión 5.6.4 MySQL soporta microsegundos.


Título: Re: timestamp de 10 dígitos...
Publicado por: dimitrix en 23 Enero 2015, 17:45 pm
Más que nada es por comodidad, para jugar, etc. con fechas siempre me ha resultado más fácil com timestamp.

Más que nada por que todo el soporte de PHP se basa en esto... y paso de hacer un explode.