MySQL trabajando con fechas
Fechas MySQL
La parte más difícil cuando se trabaja con fechas es asegurarse de que el formato de la fecha que intenta insertar coincida con el formato de la columna de fecha en la base de datos.
Siempre que sus datos contengan solo la parte de la fecha, sus consultas funcionarán como se espera. Sin embargo, si se trata de una porción de tiempo, se vuelve más complicado.
Tipos de datos de fecha de MySQL
MySQL viene con los siguientes tipos de datos para almacenar una fecha o un valor de fecha/hora en la base de datos:
-
DATE
- formato AAAA-MM-DD -
DATETIME
- formato: AAAA-MM-DD HH:MI:SS TIMESTAMP
- formato: AAAA-MM-DD HH:MI:SS-
YEAR
- formato YYYY o YY
Nota: ¡El tipo de datos de fecha se establece para una columna cuando crea una nueva tabla en su base de datos!
Trabajar con fechas
Mira la siguiente tabla:
Tabla de pedidos
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
2 | Camembert Pierrot | 2008-11-09 |
3 | Mozzarella di Giovanni | 2008-11-11 |
4 | Mascarpone Fabioli | 2008-10-29 |
Ahora queremos seleccionar los registros con una fecha de pedido de "2008-11-11" de la tabla anterior.
Usamos la siguiente SELECT
declaración:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
El conjunto de resultados se verá así:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Nota: ¡Dos fechas se pueden comparar fácilmente si no hay un componente de tiempo involucrado!
Ahora, suponga que la tabla "Pedidos" se ve así (observe el componente de tiempo agregado en la columna "FechaPedido"):
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 13:23:44 |
2 | Camembert Pierrot | 2008-11-09 15:45:21 |
3 | Mozzarella di Giovanni | 2008-11-11 11:12:01 |
4 | Mascarpone Fabioli | 2008-10-29 14:56:59 |
Si usamos la misma SELECT
declaración que arriba:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
¡No obtendremos ningún resultado! Esto se debe a que la consulta solo busca fechas sin parte de tiempo.
Sugerencia: para mantener sus consultas simples y fáciles de mantener, no use componentes de tiempo en sus fechas, ¡a menos que sea necesario!