Convertir de tipo de fecha y hora a fecha solo en MySQL
-
Convertir del tipo
DATETIME
al tipoDATE
en MySQL -
Utilice
DATE()
para convertirDATETIME
aDATE
en MySQL -
Utilice
CAST()
para convertirDATETIME
aDATE
en MySQL -
Use
CONVERT()
para convertirDATETIME
aDATE
en MySQL -
Utilice
DATE_FORMAT()
para convertirDATETIME
aDATE
en MySQL
Hoy aprenderemos sobre los métodos DATE()
, CAST()
, CONVERT()
y DATE_FORMAT()
para convertir del tipo DATETIME
al tipo DATE
en MySQL. Los métodos mencionados anteriormente están disponibles y se pueden usar en MySQL versión 4.0 y superior.
Convertir del tipo DATETIME
al tipo DATE
en MySQL
Para entenderlo con ejemplos de código, vamos a crear una tabla de pedidos
con id
, productName
, orderNumber
y orderDateTime
como atributos; también crearemos una clave principal utilizando el campo id
. Consulte las siguientes consultas.
Código de ejemplo:
CREATE TABLE orders(
id INT NOT NULL,
productName VARCHAR(50) NOT NULL,
orderNumber INT NOT NULL,
orderDateTime DATETIME NOT NULL,
PRIMARY KEY(id)
);
INSERT INTO orders (id, productName, orderNumber, orderDateTime)
VALUES
(1, 'Oppo F17', 3322, '2022-04-11 04:32:15'),
(2, 'DELL Laptop', 5433, '2022-05-12 12:23:09'),
(3, 'HP Mouse', 3489, '2022-05-16 07:23:16');
SELECT * FROM orders;
Producción :
+----+-------------+-------------+---------------------+
| id | productName | orderNumber | orderDateTime |
+----+-------------+-------------+---------------------+
| 1 | Oppo F17 | 3322 | 2022-04-11 04:32:15 |
| 2 | DELL Laptop | 5433 | 2022-05-12 12:23:09 |
| 3 | HP Mouse | 3489 | 2022-05-16 07:23:16 |
+----+-------------+-------------+---------------------+
3 rows in set (0.00 sec)
Una vez que la tabla está lista, ahora podemos usar cualquiera de los siguientes métodos para cumplir con el objetivo según los requisitos del proyecto.
Utilice DATE()
para convertir DATETIME
a DATE
en MySQL
Código de ejemplo:
SELECT id, productName, orderNumber, DATE(orderDateTime) FROM orders;
Producción :
+----+-------------+-------------+---------------------+
| id | productName | orderNumber | DATE(orderDateTime) |
+----+-------------+-------------+---------------------+
| 1 | Oppo F17 | 3322 | 2022-04-11 |
| 2 | DELL Laptop | 5433 | 2022-05-12 |
| 3 | HP Mouse | 3489 | 2022-05-16 |
+----+-------------+-------------+---------------------+
3 rows in set (0.00 sec)
La función DATE()
puede extraer la parte DATE
del campo de tipo válido DATE
o DATETIME
. Devuelve NULL
si se pasa una expresión no válida.
Utilice CAST()
para convertir DATETIME
a DATE
en MySQL
Código de ejemplo:
SELECT id, productName, orderNumber, CAST(orderDateTime AS DATE) FROM orders;
Producción :
+----+-------------+-------------+-----------------------------+
| id | productName | orderNumber | CAST(orderDateTime AS DATE) |
+----+-------------+-------------+-----------------------------+
| 1 | Oppo F17 | 3322 | 2022-04-11 |
| 2 | DELL Laptop | 5433 | 2022-05-12 |
| 3 | HP Mouse | 3489 | 2022-05-16 |
+----+-------------+-------------+-----------------------------+
3 rows in set (0.00 sec)
El método CAST()
se utiliza para convertir (convertir) el valor de un tipo de datos a otro tipo de datos dado.
Use CONVERT()
para convertir DATETIME
a DATE
en MySQL
Código de ejemplo:
SELECT id, productName, orderNumber, CONVERT(orderDateTime, DATE) FROM orders;
Producción :
+----+-------------+-------------+------------------------------+
| id | productName | orderNumber | CONVERT(orderDateTime, DATE) |
+----+-------------+-------------+------------------------------+
| 1 | Oppo F17 | 3322 | 2022-04-11 |
| 2 | DELL Laptop | 5433 | 2022-05-12 |
| 3 | HP Mouse | 3489 | 2022-05-16 |
+----+-------------+-------------+------------------------------+
3 rows in set (0.00 sec)
También podemos usar el método CONVERT()
para transformar el campo de tipo DATETIME
a DATE
solamente. Acepta dos argumentos: el primero es el valor que debe convertirse y el segundo es el tipo de datos al que se convertirá el valor dado.
Utilice DATE_FORMAT()
para convertir DATETIME
a DATE
en MySQL
Código de ejemplo:
SELECT id, productName, orderNumber,
DATE_FORMAT(orderDateTime, '%Y-%m-%d') FROM orders;
Producción :
+----+-------------+-------------+----------------------------------------+
| id | productName | orderNumber | DATE_FORMAT(orderDateTime, '%Y-%m-%d') |
+----+-------------+-------------+----------------------------------------+
| 1 | Oppo F17 | 3322 | 2022-04-11 |
| 2 | DELL Laptop | 5433 | 2022-05-12 |
| 3 | HP Mouse | 3489 | 2022-05-16 |
+----+-------------+-------------+----------------------------------------+
3 rows in set (0.00 sec)
La función DATE_FORMAT()
convierte el tipo DATETIME
a DATE
y es útil para cambiar el formato de fecha actual. Por ejemplo, si queremos mostrar la FECHA
en formato d/m/Y
, podemos hacerlo de la siguiente manera.
Código de ejemplo:
SELECT id, productName, orderNumber,
DATE_FORMAT(orderDateTime, '%d/%m/%Y') FROM orders;
Producción :
+----+-------------+-------------+----------------------------------------+
| id | productName | orderNumber | DATE_FORMAT(orderDateTime, '%d/%m/%Y') |
+----+-------------+-------------+----------------------------------------+
| 1 | Oppo F17 | 3322 | 11/04/2022 |
| 2 | DELL Laptop | 5433 | 12/05/2022 |
| 3 | HP Mouse | 3489 | 16/05/2022 |
+----+-------------+-------------+----------------------------------------+
3 rows in set (0.00 sec)
También podemos transformarlo en el siguiente formato usando la función DATE_FORMAT()
si queremos ver el nombre del mes en lugar del número del mes.
Código de ejemplo:
SELECT id, productName, orderNumber,
DATE_FORMAT(orderDateTime, '%D %M %Y') FROM orders;
Producción :
+----+-------------+-------------+----------------------------------------+
| id | productName | orderNumber | DATE_FORMAT(orderDateTime, '%D %M %Y') |
+----+-------------+-------------+----------------------------------------+
| 1 | Oppo F17 | 3322 | 11th April 2022 |
| 2 | DELL Laptop | 5433 | 12th May 2022 |
| 3 | HP Mouse | 3489 | 16th May 2022 |
+----+-------------+-------------+----------------------------------------+
3 rows in set (0.00 sec)