Guardar fecha automáticamente al crear un registro en MySQL
Bienvenidos a Vertutoriales.com, en esta ocasión un speed de como guardar la fecha del momento en el que se guarda un registro, para ello nada más sencillo que decirle a MySQL que lo haga por nosotros.
Así es, si tienes la necesidad de guardar la fecha y/u hora de cuando se realiza una inserción en la base de datos, no tienes que estar tratando de manejar la hora, darle formato y demás, es más sencillo, simplemente a la hora de crear nuestro campo fecha o nuestro campo hora o la suma de los dos, podemos darle por defecto el valor de CURRENT_TIMESTAMP, al decirle a MySQL que el campo es “DEFAULT CURRENT_TIMESTAMP” le estamos indicando que cuando se guarde un registro, automáticamente se añada la fecha y hora.
Para facilitaros las cosas, os dejo la linea para añadir este valor a nuestro campo seleccionado utilizando la sentencia ALTER TABLE:
ALTER TABLE `mitabla` ADD `fecha` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ;
Solo tendréis que sustituir el nombre de “mitabla” por el nombre de vuestra tabla de MySQL, además del campo “fecha” por el que vosotros tengáis en vuestra tabla
Espero que os facilite un poco la vida este pequeño cambio en vuestra base de datos.
Un saludo!
Comments
Gracias me ha servido
Gracias a tí por comentar. Son detalles de MySQL que ayudan a optimizar nuestro trabajo 😉
me marca error: #1067 – Invalid default value for `mitabla`
donde pone “mitabla” deberá de existir una tabla que ya tenga ese nombre de tabla 🙂
Una consulta, tengo una tabla tal que así
CREATE TABLE tabla_ejemplo1 (fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); La idea es que se registre la fecha y la hora automáticamente y se realiza cualquier modificación también actualice la hora automáticamente.
Cuando hago una insección la idea es que automáticamente guarde la hora a la que se hizo dicha insercción o modificación.
Me conecto a Mysql y todo perfecto se realiza la insercción de dicho registro(ademas de la fecha tiene otros valores numéricos)
Pero no me muestra mi hora sino una hora menos. Donde puede estar el problema
En la hora del servidor, seguramente tengas otra configuración. Tendrás que revisar la hora de la que está tirando MySQL.
MUCHISISMAS GRACIAS ACABAS DE SALVARME LA VIDA SALUDOS ! =)
Guau! y seguramente estaría durmiendo! jeje Las cosas que tiene guardar una fecha en MySQL
Hola, una pregunta, necesito que se guarden unos datos a una bd, y adicional adicionalmente que se me añada la fecha del sistema, sin tener q colocar en el formulario de registro el campo fecha, cual sería los códigos o el procedimiento para hacerlo, ya vi las sentencias MySQL, pero como hay que hacen en el formulario html y la recepción de PHP? Hay que también hacerle un input tipo hidden o que?
Buenas
No, precisamente lo interesante del artículo, es que se guarda automáticamente el registro sin tener que asignarlo desde PHP.
Lo que hablamos en el artículo, es que al usar la declaración de campo DEFAULT CURRENT_TIMESTAMP estamos definiendo que por defecto ese campo va a tener la fecha y hora actual del servidor desde el cual se está generando ese nuevo registro. De manera que sin tener que controlarlo desde código ese campo con la fecha y hora actual, se añadiría en el momento y de forma automática.
Espero que te aclare 😉
Y si solo quiero la fecha pero que no se muestre la hora, ¿Cómo lo haría?
En el tipo de campo de MySQL puedes definir el formato de cómo guardarse.
Hola.. Como arreglo el desfase de horario.
Es decir, mi servidor tiene 6 horas adelante de mi tiempo.
Cuando imprimo aparece eso… 6 horas en el futuro.
Gracias.
Buenas Juanon, pues supongo que el problema lo tienes en tu máquina que no tiene la configuración correcta, puede ser casi seguro por el huso horario que esté utilizando o la otra opción es que tengas la hora mal (que no creo por que suelen sincronizarse de forma automática). Busca en internet cómo cambiar la hora en el servidor linux y te saldrá una respuesta sencilla de implementar.
Si no encontraras nada o te cuesta administrar el servidor y no te atreves, vuelve y pregúntame cómo hacerlo con el sistema que me digas para buscar la manera de hacerlo y te ayudo.
Un saludo!
Literal con esa linea me salvas mi trabajo final, muchas gracias!!
Aprobando por otros desde el año 2000 😀