Convertir de tipo de fecha y hora a fecha solo en MySQL

Mehvish Ashiq 20 junio 2023
  1. Convertir del tipo DATETIME al tipo DATE en MySQL
  2. Utilice DATE() para convertir DATETIME a DATE en MySQL
  3. Utilice CAST() para convertir DATETIME a DATE en MySQL
  4. Use CONVERT() para convertir DATETIME a DATE en MySQL
  5. Utilice DATE_FORMAT() para convertir DATETIME a DATE en MySQL
Convertir de tipo de fecha y hora a fecha solo 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)
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 Date