Fechas SQL
La parte más difícil cuando se trabaja con las fechas es estar seguro de que el formato de la fecha en la que está intentando insertar, coincide con el formato de la columna de la fecha en la base de datos.
MySQL Funciones de fecha
La siguiente tabla enumera las más importantes funciones de fecha incorporadas en MySQL:
Función | Descripción |
---|---|
NOW() | Devuelve la fecha y la hora actual |
CURDATE() | Devuelve la fecha actual |
CURTIME() | Devuelve la hora actual |
DATE() | Extrae la parte de fecha de una fecha o expresión de fecha / hora |
EXTRACT() | Devuelve una sola parte de una fecha / hora |
DATE_ADD() | Añade un intervalo de tiempo especificado en una fecha |
DATE_SUB() | Resta un intervalo de tiempo especificado desde una fecha |
DATEDIFF() | Devuelve el número de días entre dos fechas |
DATE_FORMAT() | Muestra datos de fecha / hora en formatos diferentes |
Servidor SQL Funciones de fecha
La siguiente tabla enumera las más importantes funciones de fecha incorporadas en SQL Server:
Función | Descripción |
---|---|
GETDATE() | Devuelve la fecha y la hora actual |
DATEPART() | Devuelve una sola parte de una fecha / hora |
DATEADD() | Suma o resta un intervalo de tiempo especificado desde una fecha |
DATEDIFF() | Devuelve el tiempo entre dos fechas |
CONVERT() | Muestra datos de fecha / hora en formatos diferentes |
Fecha de tipos de datos SQL
MySQL incluye los siguientes tipos de datos para almacenar una fecha o un valor de fecha / hora en la base de datos:
- FECHA - formato AAAA-MM-DD
- DATETIME - formato: AAAA-MM-DD HH: MI: SS
- TIMESTAMP - formato: AAAA-MM-DD HH: MI: SS
- AÑO - AAAA formato o YY
SQL Server incluye los siguientes tipos de datos para almacenar una fecha o un valor de fecha / hora en la base de datos:
- FECHA - formato AAAA-MM-DD
- DATETIME - formato: AAAA-MM-DD HH: MI: SS
- SMALLDATETIME - formato: AAAA-MM-DD HH: MI: SS
- TIMESTAMP - formato: un número único
Note: Los tipos de fecha son elegidos para una columna cuando se crea una nueva tabla en la base de datos!
Para una visión general de todos los tipos de datos disponibles, vaya a nuestra completa referencia de tipos de datos .
SQL Trabajo con fechas
Puede comparar dos fechas fácilmente si no hay un componente tiempo involucrado!
Supongamos que tenemos el siguiente "Orders" tabla:
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 un OrderDate de "2008-11-11" de la tabla anterior.
Nosotros usamos la siguiente instrucción SELECT:
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 |
Ahora, supongamos que la "Orders" tabla es el siguiente (nótese el componente de tiempo en el "OrderDate" columna):
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 utilizamos la misma instrucción SELECT que el anterior:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
obtendremos ningún resultado! Esto se debe a que la consulta está mirando solamente para citas con ninguna porción de tiempo.
Tip: Si desea mantener sus consultas simple y fácil de mantener, no permita que los componentes de tiempo en sus fechas!