Problema:
Le gustaría agregar un número determinado de días a una fecha en T-SQL.
Ejemplo:
Nuestra base de datos tiene una tabla llamada Flight
con datos en las columnas Code
y DepartureDate
.
Código | Fecha de salida |
---|---|
LT2030 | 2019-02-20 |
GH1100 | 2019-03-01 |
SR5467 | 2019-12-30 |
Cambiemos la fecha de salida de todos los vuelos, agregando dos días a la fecha de salida actual.
Solución:
Usaremos la función DATEADD() para especificar la unidad de tiempo para agregar, definir cuánto agregar y seleccionar la fecha para cambiar. Echa un vistazo a la consulta:
SELECT Code, DATEADD(day, 2, DepartureDate) AS ChangedDepartureDate FROM Flight;
Aquí está el resultado:
Código | Fecha de salida modificada |
---|---|
LT2030 | 2019-02-22 |
GH1100 | 2019-03-03 |
SR5467 | 2020-01-01 |
Discusión:
Para cambiar una fecha y/u hora agregando un número específico de una unidad de tiempo elegida, use la función DATEADD() de SQL Server. Esta función funciona en tipos de datos de fecha, hora o fecha y hora. Se necesitan tres argumentos:
- La unidad de fecha/hora deseada para agregar. En nuestro ejemplo, es de día; queremos agregar días a la fecha.
- Cuántas unidades agregar. En nuestro ejemplo, esto es 2; queremos agregar 2 días a la fecha existente.
- Una columna que contiene la fecha/hora/fechahora que queremos cambiar. (En nuestro ejemplo, usamos la columna Fecha de salida). Este argumento también puede ser una expresión que devuelve una fecha/hora/fechahora.
La función DATEADD() devuelve una nueva fecha. En nuestro ejemplo, la nueva fecha se devuelve como ChangedDepartureDate
columna. Para el código de vuelo 'LT2030', la fecha '2019-02-20' ahora es '2019-02-22'.
La función DATEADD() puede usar unidades de fecha y hora como year
, quarter
, month
, dayofyear
, day
, week
, weekday
, hour
, minute
, second
, etc. Puede obtener más información en la documentación de SQL Server.