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!

Carlos Dk

Apasionado por la enseñanza y el SEO

16 comentarios en “Guardar fecha automáticamente al crear un registro en MySQL

    • el 25 octubre, 2014 a las 9:15 am
      Permalink

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

      Respuesta
    • el 3 marzo, 2017 a las 12:19 am
      Permalink

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

      Respuesta
  • el 15 junio, 2017 a las 3:48 pm
    Permalink

    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

    Respuesta
    • el 20 junio, 2017 a las 10:19 am
      Permalink

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

      Respuesta
  • el 31 mayo, 2018 a las 2:46 am
    Permalink

    MUCHISISMAS GRACIAS ACABAS DE SALVARME LA VIDA SALUDOS ! =)

    Respuesta
    • el 1 junio, 2018 a las 8:24 am
      Permalink

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

      Respuesta
  • el 2 septiembre, 2018 a las 5:39 pm
    Permalink

    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?

    Respuesta
    • el 3 septiembre, 2018 a las 10:05 am
      Permalink

      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 😉

      Respuesta
  • el 17 marzo, 2022 a las 5:41 am
    Permalink

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

    Respuesta
    • el 12 abril, 2022 a las 11:40 am
      Permalink

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

      Respuesta
  • el 3 abril, 2022 a las 6:58 am
    Permalink

    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.

    Respuesta
    • el 12 abril, 2022 a las 11:43 am
      Permalink

      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!

      Respuesta
  • el 21 junio, 2022 a las 9:28 am
    Permalink

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

    Respuesta

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.