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.

Servidor de base de datos MySQL
Campos por defecto en MySQL

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!

Tags :

Comments (16)

  • GTA7X 24 octubre, 2014

    Gracias me ha servido

    Reply
    • videotutoriales 25 octubre, 2014

      Gracias a tí por comentar. Son detalles de MySQL que ayudan a optimizar nuestro trabajo 😉

      Reply
  • Manuel 2 marzo, 2017

    me marca error: #1067 – Invalid default value for `mitabla`

    Reply
    • Carlos Dk 3 marzo, 2017

      donde pone «mitabla» deberá de existir una tabla que ya tenga ese nombre de tabla 🙂

      Reply
  • Francisco Miguel Hernandez Maldonado 15 junio, 2017

    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

    Reply
    • Carlos Dk 20 junio, 2017

      En la hora del servidor, seguramente tengas otra configuración. Tendrás que revisar la hora de la que está tirando MySQL.

      Reply
  • Idalia 31 mayo, 2018

    MUCHISISMAS GRACIAS ACABAS DE SALVARME LA VIDA SALUDOS ! =)

    Reply
    • Carlos Dk 1 junio, 2018

      Guau! y seguramente estaría durmiendo! jeje Las cosas que tiene guardar una fecha en MySQL

      Reply
  • ken 2 septiembre, 2018

    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?

    Reply
    • Carlos Dk 3 septiembre, 2018

      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 😉

      Reply
  • jeff 17 marzo, 2022

    Y si solo quiero la fecha pero que no se muestre la hora, ¿Cómo lo haría?

    Reply
    • Carlos Dk 12 abril, 2022

      En el tipo de campo de MySQL puedes definir el formato de cómo guardarse.

      Reply
  • Juanon 3 abril, 2022

    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.

    Reply
    • Carlos Dk 12 abril, 2022

      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!

      Reply
  • Diego Alonso Morey Quispe 21 junio, 2022

    Literal con esa linea me salvas mi trabajo final, muchas gracias!!

    Reply
    • Carlos Dk 1 agosto, 2022

      Aprobando por otros desde el año 2000 😀

      Reply

Leave a comment

Sign in to post your comment or sine up if you dont have any account.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Tu software de gestión


Últimas preguntas:

Logo Dkreativo
Vertutoriales