Insertar marca de tiempo en una tabla MySQL
- Crear una tabla MySQL
-
Use
NOW()
para insertar la marca de tiempo en una tabla MySQL -
Utilice
CURRENT_TIMESTAMP()
para insertar una marca de tiempo en una tabla MySQL -
Establecer valores nulos o predeterminados para la columna de tipo
TIMESTAMP
en la 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.
Artículo relacionado - MySQL Table
- Copia de seguridad de una sola tabla usando Mysqldump
- Copie estructuras de tablas sin copiar datos en MySQL
- Diferencia entre dos tablas en MySQL
- Mostrar estructura de tablas y bases de datos en MySQL
- Obtenga la ID del último registro insertado en MySQL