Compare las fechas de marca de tiempo de MySQL solo con el parámetro de fecha

Mehvish Ashiq 20 junio 2023
  1. DATE() frente a CAST() frente a CONVERT() en MySQL
  2. Compare las fechas de marca de tiempo de MySQL solo con el parámetro de fecha
  3. Utilice FECHA() para comparar fechas de marca de tiempo de MySQL solo con el parámetro de fecha
  4. Use CAST() para comparar las fechas de marca de tiempo de MySQL solo con el parámetro de fecha
  5. Use CONVERT() para comparar las fechas de marca de tiempo de MySQL solo con el parámetro de fecha
  6. Use ENTRE para comparar fechas de marca de tiempo de MySQL solo con el parámetro de fecha
Compare las fechas de marca de tiempo de MySQL solo con el parámetro de fecha

Hoy, usaremos las funciones DATE(), CAST() y CONVERT() para comparar las fechas de la marca de tiempo de MySQL solo con el parámetro de fecha.

DATE() frente a CAST() frente a CONVERT() en MySQL

La siguiente es una breve introducción a cada función. También puede encontrar más ejemplos para cada uno haciendo clic aquí.

el método FECHA() en MySQL

El método DATE() extrae la parte de la fecha de la marca de tiempo o expresión DateTime. Toma solo un parámetro, que debe ser del tipo DATE, TIMESTAMP o DATETIME.

Devuelve NULL si el argumento pasado pertenece a tipos distintos a los mencionados. Esta función está disponible si está utilizando MySQL versión 4.0 o superior.

el método CONVERT() en MySQL

El método CONVERT() convierte el valor particular en el tipo de datos especificado. Por ejemplo, podemos convertir el valor del tipo TIMESTAMP al tipo DATE.

Se necesitan dos parámetros, y ambos son obligatorios. El primer parámetro es el valor que se supone que debe convertirse, y el otro es el tipo de datos en el que se convertiría el valor especificado.

Está disponible en MySQL versión 4.0 y superior.

el método CAST() en MySQL

El método CAST() es similar a CONVERT(), explicado anteriormente. Lo usamos para convertir el valor de un tipo de datos a otro.

Por ejemplo, cuando convertimos el valor de DateTime al tipo DATE. Al igual que el método CONVERT(), también toma dos valores: el valor a convertir y el tipo de datos al que desea convertir.

Podemos usar esta función si tenemos MySQL versión 4.0 o superior.

Compare las fechas de marca de tiempo de MySQL solo con el parámetro de fecha

Para comparar las fechas de la marca de tiempo de MySQL solo con el parámetro de fecha, creamos una tabla llamada date_comparison con dos atributos, ID y COL_DATETIME. Aquí, ID es de tipo int y COL_DATETIME es de TIMESTAMP.

También puede crear esta tabla utilizando las siguientes consultas para seguir este tutorial con nosotros.

Ejemplo:

# Create a table
CREATE TABLE date_comparison(
    ID INT NOT NULL AUTO_INCREMENT,
    COL_DATETIME TIMESTAMP NOT NULL,
    PRIMARY KEY (ID));

# Insert data
INSERT INTO date_comparison(col_datetime)
VALUES
('2001-11-15 09:50:00'),
('2006-08-09 04:30:00'),
('2001-11-15 23:30:00'),
('2005-06-03 06:22:11'),
('2004-01-01 21:42:17');

# Show all data
SELECT * FROM date_comparison;

Producción :

+----+---------------------+
| ID | col_datetime        |
+----+---------------------+
|  1 | 2001-11-15 09:50:00 |
|  2 | 2006-08-09 04:30:00 |
|  3 | 2001-11-15 23:30:00 |
|  4 | 2005-06-03 06:22:11 |
|  5 | 2004-01-01 21:42:17 |
+----+---------------------+
5 rows in set (0.00 sec)

Ahora, queremos recuperar los registros de una fecha específica; por ejemplo, para la fecha 2005-06-03 únicamente. Necesitamos comparar el parámetro de fecha con todos los valores de la columna col_datetime del tipo TIMESTAMP.

Utilice FECHA() para comparar fechas de marca de tiempo de MySQL solo con el parámetro de fecha

Entonces, podemos comparar la fecha de la marca de tiempo con el parámetro de fecha solo de la siguiente manera.

Ejemplo:

SELECT * FROM date_comparison WHERE DATE(col_datetime) = '2005-06-03';

Producción :

+----+---------------------+
| ID | col_datetime        |
+----+---------------------+
|  4 | 2005-06-03 06:22:11 |
+----+---------------------+
1 row in set (0.00 sec)

Si nos enfocamos solo en la fecha, podemos convertir el col_datetime a la fecha usando la función DATE().

Ejemplo:

SELECT ID, DATE(col_datetime) FROM date_comparison
WHERE DATE(col_datetime) = '2005-06-03';

Producción :

+----+--------------------+
| ID | DATE(col_datetime) |
+----+--------------------+
|  4 | 2005-06-03         |
+----+--------------------+
1 row in set (0.00 sec)

Use CAST() para comparar las fechas de marca de tiempo de MySQL solo con el parámetro de fecha

También podemos emplear la función CAST() para comparar las fechas de la marca de tiempo solo con el parámetro de fecha.

Ejemplo:

SELECT ID, CAST(col_datetime AS DATE) FROM date_comparison
WHERE CAST(col_datetime AS DATE) = '2005-06-03';

Producción :

+----+----------------------------+
| ID | CAST(col_datetime AS DATE) |
+----+----------------------------+
|  4 | 2005-06-03                 |
+----+----------------------------+
1 row in set (0.00 sec)

Use CONVERT() para comparar las fechas de marca de tiempo de MySQL solo con el parámetro de fecha

La función CONVERT() también puede comparar la marca de tiempo solo con la fecha.

Ejemplo:

SELECT ID, CONVERT(col_datetime, DATE) FROM date_comparison
WHERE CONVERT(col_datetime, DATE) = '2005-06-03';

Producción :

+----+-----------------------------+
| ID | CONVERT(col_datetime, DATE) |
+----+-----------------------------+
|  4 | 2005-06-03                  |
+----+-----------------------------+
1 row in set (0.00 sec)

Use ENTRE para comparar fechas de marca de tiempo de MySQL solo con el parámetro de fecha

La siguiente solución será la más rápida si tiene un índice en la columna col_datetime (con el tipo TIMESTAMP) porque podría usar el índice en la columna col_datetime.

Ejemplo:

SELECT * FROM date_comparison
WHERE col_datetime
BETWEEN '2005-06-03 00:00:00' AND '2005-06-03 23:59:59';

Producción :

+----+---------------------+
| ID | col_datetime        |
+----+---------------------+
|  4 | 2005-06-03 06:22:11 |
+----+---------------------+
1 row 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 Timestamp