MySQL. Fecha y hora. Tipo de dato DATETIME

Antonio J. Galisteo

Anuncio:

Cómo almacenar en base de datos MySQL la fecha y hora. Para esto no es suficiente con el tipo de dato DATE.

En muchas ocasiones los requerimientos de un determinado problema exigen que se almacene en base de datos la fecha y hora de un evento en concreto. Para esto debemos usar el tipo de dato DATETIME. En esta ocasión veremos como trabajarlo en MySQL.

La definición del atributo en la creación de la tabla sería:

CREATE TABLE prueba (
     ...
     fecha_evento DATETIME NOT NULL COMMENT 'Fecha y hora del evento',
     ...
);

Veamos como hacer un insert.

INSERT INTO prueba (..., fecha_evento, ...) VALUES (..., '2013-11-24 17:15:10', ...);

Si estamos trabajando con PHP podemos obtener el formato de la fecha y hora actual de la siguiente forma

$fecha_hora_actual = date('Y-m-d H:i:s');

A la hora de hacer un select podemos recuperar solo la fecha y no la hora de la siguiente forma

SELECT DATE_FORMAT(fecha_evento, '%d-%m-%Y') AS fecha FROM prueba WHERE condicion;

Como podemos ver es un tipo de dato muy fácil de usar y cuya funcionalidad nos permite almacenar la fecha y hora juntas de un determinado evento.

Publicado el 24-11-2013

Donar

Si te ha sido de ayuda y quieres hacer una donación te lo agradeceremos :)

Compartelo!


11 comentarios

  • abad flores dice:

    Hola respecto a esto
    2018-08-10-10:10:51
    solo quiero que determine la fecha que cuando hago la consulta
    select * from unlocked where dateTimeUnlocked = «2017-11-28»;
    solo me arroje la fecha pero no me arroja al menos cuando le ponga la hora

  • Benjamin Giovanni Santos Santiago dice:

    tengo una duda y seria como validar si un dato se guarda al cumplir los 60 segundos, en caso de que este no lo haga, que el dato no se guarde

    • Hola Benjamin, no entiendo muy bien que es lo que tienes que hacer, pero desde php puedes hacer operaciones con las fechas por lo que puedes ver el tiempo transcurrido desde que un evento se ha producido hasta que se ha guardado en la base de datos, y así, puedes ver si el tiempo transcurrido fue de 60 segundos.

  • Muy buenas yo tengo configurado en mysql que se inserte la fecha automatica cada vez que se inserta un registro, pero se inserta de esta manera 2016-06-15 20:26:58-04:00 y la saluda que yo quiero es 2016-06-15T20:26:58-04:00.

    Es casi lo mismo solo que la ultima tiene una T intercalada y es necesaria para el sitemap.xml. Alguien me podria decir como la puedo optener

  • ricardo david dice:

    hola .muy interesante tu post, yo tengo un problema al insertar datetime , me inserta en mysql(mi db)0000-00-00 00:00:00.

    • Hola ricardo, tienes un problema al generar el datetime en tu PHP, no se esta generando con el formato que necesita MySQL, el formato es YYYY-mm-dd HH:mm:ss. Así representa un datetime MySQL. Imprime por pantalla el formato del dato que estas usando para que puedas identificar donde esta el problema. Saludos

  • Sharon dice:

    Bueno, pero me gustaria saber con que numero lo utilizo al agregar esa sentencia a una tabla? Es decir hice mi diseño en workbench y le puse que utilizaria 6 caracteres pero al generar el codigo me decia «error».

Deja un comentario

Comentanos

*

Ir arriba de la pagina