Compare las fechas de marca de tiempo de MySQL solo con el parámetro de fecha
-
DATE()
frente aCAST()
frente aCONVERT()
en MySQL - Compare las fechas de marca de tiempo de MySQL solo con el parámetro de fecha
-
Utilice
FECHA()
para comparar fechas de marca de tiempo de MySQL solo con el parámetro de fecha -
Use
CAST()
para comparar las fechas de marca de tiempo de MySQL solo con el parámetro de fecha -
Use
CONVERT()
para comparar las fechas de marca de tiempo de MySQL solo con el parámetro de fecha -
Use
ENTRE
para comparar 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)