Insertar marca de tiempo en una tabla MySQL

Mehvish Ashiq 20 junio 2023
  1. Crear una tabla MySQL
  2. Use NOW() para insertar la marca de tiempo en una tabla MySQL
  3. Utilice CURRENT_TIMESTAMP() para insertar una marca de tiempo en una tabla MySQL
  4. Establecer valores nulos o predeterminados para la columna de tipo TIMESTAMP en la tabla MySQL
Insertar marca de tiempo en una tabla MySQL

Hoy, aprenderemos cómo insertar la fecha y la hora en la columna de tipo TIMESTAMP de la tabla MySQL en función de la definición de la tabla.

Crear una tabla MySQL

Primero, crearemos la tabla que usaremos para este tutorial.

Código de ejemplo:

CREATE TABLE demo_one(
    demo_one_id INT NOT NULL,
    demo_one_timestamp TIMESTAMP NOT NULL,
    PRIMARY KEY(demo_one_id)
);

Use DESCRIBE de la siguiente manera para saber más sobre la definición de la tabla.

Consulta:

DESCRIBE demo_one;

Producción :

+--------------------+-----------+------+-----+---------+-------+
| Field              | Type      | Null | Key | Default | Extra |
+--------------------+-----------+------+-----+---------+-------+
| demo_one_id        | int       | NO   | PRI | NULL    |       |
| demo_one_timestamp | timestamp | NO   |     | NULL    |       |
+--------------------+-----------+------+-----+---------+-------+
2 rows in set (0.08 sec)

Podemos ver que ambos atributos no aceptan valores NULL, y no tenemos valores predeterminados para ellos. Significa que estamos obligados a insertar los valores para ambas columnas.

Use NOW() para insertar la marca de tiempo en una tabla MySQL

El primer enfoque que demostraremos para insertar TIMESTAMP en una tabla MySQL es NOW().

Consulta:

INSERT INTO demo_one (demo_one_id, demo_one_timestamp)
VALUES
(1, NOW());

Use la instrucción SELECT para ver los datos de la tabla actual.

Consulta:

SELECT * FROM demo_one;

Producción :

+-------------+---------------------+
| demo_one_id | demo_one_timestamp  |
+-------------+---------------------+
|           1 | 2022-05-14 11:04:11 |
+-------------+---------------------+
1 row in set (0.00 sec)

Utilice CURRENT_TIMESTAMP() para insertar una marca de tiempo en una tabla MySQL

También podemos emplear el método CURRENT_TIMESTAMP() para insertar TIMESTAMP en la tabla MySQL que creamos anteriormente.

Consulta:

INSERT INTO demo_onE (demo_one_id, demo_one_timestamp)
VALUES
(2, CURRENT_TIMESTAMP());

Podemos usar la declaración SELECT como se indica a continuación para ver los datos de la tabla.

Consulta:

SELECT * FROM demo_one;

Producción :

+-------------+---------------------+
| demo_one_id | demo_one_timestamp  |
+-------------+---------------------+
|           1 | 2022-05-14 11:04:11 |
|           2 | 2022-05-14 11:06:01 |
+-------------+---------------------+
2 rows in set (0.03 sec)

Establecer valores nulos o predeterminados para la columna de tipo TIMESTAMP en la tabla MySQL

Si no queremos insertar el valor para la columna de tipo TIMESTAMP, podemos hacerlo de dos formas. Configure esa columna para aceptar valores NULOS o establezca el valor predeterminado para la columna.

Código de ejemplo (aceptar valores null para el campo demo_two_timestamp):

CREATE TABLE demo_two(
    demo_two_id INT NOT NULL,
    # we can also write the following column definition
    # as `demo_two_timestamp TIMESTAMP NULL`
    demo_two_timestamp TIMESTAMP,
    PRIMARY KEY(demo_two_id)
);

INSERT INTO demo_two (demo_two_id, demo_two_timestamp) VALUES (1,null), (2, NOW());

SELECT * FROM demo_two;

Producción :

+-------------+---------------------+
| demo_two_id | demo_two_timestamp  |
+-------------+---------------------+
|           1 | NULL                |
|           2 | 2022-05-14 11:15:18 |
+-------------+---------------------+
2 rows in set (0.04 sec)

Aquí, podemos usar NULL si no queremos insertar el valor para la columna demo_two_timestamp. También tenemos la flexibilidad de insertar el valor correcto usando NOW() o CURRENT_TIMESTAMP() si no queremos tener NULL para un registro específico.

Código de ejemplo (establecer el valor predeterminado para el campo demo_tres_timestamp):

CREATE TABLE demo_three(
    demo_three_id INT NOT NULL,
    demo_three_timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(demo_three_id)
);

INSERT INTO demo_three (demo_three_id) VALUES (1);
INSERT INTO demo_three (demo_three_id, demo_three_timestamp) VALUES (2, NOW());
INSERT INTO demo_three (demo_three_id, demo_three_timestamp)
VALUES (3, CURRENT_TIMESTAMP());

SELECT * FROM demo_three;

Producción :

+---------------+----------------------+
| demo_three_id | demo_three_timestamp |
+---------------+----------------------+
|             1 | 2022-05-14 11:21:57  |
|             2 | 2022-05-14 11:22:20  |
|             3 | 2022-05-14 11:22:40  |
+---------------+----------------------+
3 rows in set (0.00 sec)

Si no queremos ingresar el valor para la columna demo_three_timestamp ni deseamos tener NULL, entonces podemos establecer los valores predeterminados usando DEFAULT CURRENT_TIMESTAMP como se muestra en el ejemplo anterior.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Artículo relacionado - MySQL Table

Artículo relacionado - MySQL Timestamp