Guardando la marca de tiempo en la tabla mysql usando php
⏰ 4 minutos de lectura
gautamlakum
Tengo un campo en una tabla MySQL que tiene un timestamp tipo de datos. Estoy guardando datos en esa tabla. Pero cuando paso la marca de tiempo (1299762201428) al registro, guarda automáticamente el valor 0000-00-00 00:00:00 en esa mesa.
¿Cómo puedo almacenar la marca de tiempo en una tabla MySQL?
Aquí está mi INSERT declaración:
INSERT INTO table_name (id,d_id,l_id,connection,s_time,upload_items_count,download_items_count,t_time,status)
VALUES (1,5,9,'2',1299762201428,5,10,20,'1'),
(2,5,9,'2',1299762201428,5,10,20,'1')
qué marca de tiempo ¿estas hablando de? ¿Dónde lo obtuviste?
– Tu sentido común
12 de abril de 2011 a las 9:05
¿Puedes pegar la estructura de tu tabla aquí?
– usuario319198
12 de abril de 2011 a las 9:06
pasar así
date('Y-m-d H:i:s','1299762201428')
pero el valor que obtiene en db muestra que el tipo de columna es datetimesi desea cambiarlo a timestamp luego cambie el tipo de columna a varchar(15)
– Jimmy
12 de abril de 2011 a las 8:57
Luego póngalo en un campo INT. De todos modos, una marca de tiempo es solo una representación de una fecha, y viceversa. Puede convertir de la marca de tiempo a la fecha con la función que le dijo jimy, y al revés con strtotime. editar: por cierto, la marca de tiempo solo cubre un rango de todas las fechas posibles (1970-01-01 a xx-xx-2032, creo)
– Carlos Campderrós
12 de abril de 2011 a las 8:58
Entonces, ¿cuál es el uso del tipo de datos de marca de tiempo? El campo s_time tiene un tipo de datos de marca de tiempo. ¿No puedo guardar 1299762201428 en ese campo?
@ lakum4stackof: el uso de la marca de tiempo es que guarda la marca de tiempo, pero solo se muestra como una fecha. Internamente (como todos los tipos de datos) se almacena como un entero con signo. Si también desea formatear esa marca de tiempo como un número entero, le sugiero que use el campo INT entonces. El uso de la columna de marca de tiempo es la manipulación de la fecha (agregar intervalos y demás).
– Michael JV
12 de abril de 2011 a las 9:06
ricardo tuin
Hola, usa el FROM_UNIXTIME() función para esto.
Como esto:
INSERT INTO table_name
(id,d_id,l_id,connection,s_time,upload_items_count,download_items_count,t_time,status)
VALUES
(1,5,9,'2',FROM_UNIXTIME(1299762201428),5,10,20,'1'),
(2,5,9,'2',FROM_UNIXTIME(1299762201428),5,10,20,'1')
¿Por qué es esto mejor que date('Y-m-d H:i:s','1299762201428')?
– Yuri
16 de mayo de 2016 a las 7:27
Tipo de seguridad: FROM_UNIXTIME produce un tipo de fecha mysql nativo mientras que php date() devuelve una cadena.
– Ricardo Tuín
20 de mayo de 2016 a las 6:19
Es mejor porque el servidor web (PHP) y MySQL podrían estar en diferentes lugares. Entonces, date(‘Ymd H:i:s’,’1299762201428′) establecerá la zona horaria del servidor web. Con diferentes servidores web ubicados en diferentes zonas, tendrá datos inconsistentes. Alternativamente, en su código, debe forzar la zona horaria de la aplicación a la zona horaria de MySQL. date_timezone_set
Puedes usar now() también en su consulta, es decir:
insert into table (time) values(now());
Utilizará la marca de tiempo actual.
niño rodante
Tipo de datos ‘bigint sin firmar‘ puede satisfacer este requisito.
Supongo que el campo en el que intenta guardar el valor es un campo de fecha y hora no lo es, pero lo mismo parece ser cierto para las marcas de tiempo. Si es así, mysql espera que el formato sea Año-mes-día Hora:minuto:segundo. Para guardar la marca de tiempo, deberá convertir el campo a numérico mediante una consulta como
alter table <table_name> change <field> <field> bigint unsigned
Si está usando la hora actual, puede usar now() o current_timestamp.
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
qué marca de tiempo ¿estas hablando de? ¿Dónde lo obtuviste?
– Tu sentido común
12 de abril de 2011 a las 9:05
¿Puedes pegar la estructura de tu tabla aquí?
– usuario319198
12 de abril de 2011 a las 9:06