SQL >> Base de Datos >  >> RDS >> SQLite

Cómo agregar un mes a una fecha en SQLite

Problema:

Le gustaría agregar un mes a una fecha determinada en una base de datos SQLite.

Ejemplo:

Nuestra base de datos tiene una tabla llamada production con datos en las columnas id , product y start_date .

id producto fecha_inicio
1 escritorio 2019-08-17
2 sillón 2019-07-17
3 sofá 2019-10-31

Los productos tienen una nueva fecha de inicio de producción que es un mes posterior a la indicada anteriormente. Obtengamos los nombres de los productos y su nueva fecha de inicio.

Esta es la consulta que escribirías:

Solución:

SELECT product,
  DATE(start_date,'+1 months')
  AS new_start_date
FROM production;

Este es el resultado de la consulta:

id producto nueva_fecha_de_inicio
1 escritorio 2019-09-17
2 sillón 2019-08-17
3 sofá 2019-12-01

Discusión:

Usa SQLite DATE() Función para agregar un mes a una fecha determinada (o fecha y hora). Los argumentos requeridos incluyen la fecha/fechahora para cambiar y uno o más modificadores con valores que indican cuántas unidades suman o restan.

El primer argumento puede ser una expresión que devuelva un valor de fecha/fechahora o una columna de fecha/fechahora. En nuestro ejemplo, es la columna start_date .

Los modificadores indican qué (y cuánto) unidad de tiempo sumar/restar. En nuestro ejemplo, usamos el modificador '+1 meses '. El modificador comienza con más o menos, lo que indica suma o resta. Luego hay un valor (por ejemplo, 1) y la unidad (por ejemplo, meses , años , días , etc.) Si escribe ‘-2 días ', le restas 2 días a una fecha determinada.

Importante: Algunos modificadores requieren una sintaxis ligeramente diferente a la que se muestra arriba. Por ejemplo, el 'día de la semana El modificador viene antes del valor (es decir, DATE(start_date,'weekday 3') ). Otros modificadores no toman valores, como 'comienzo de mes ', que muestra el primer día del mes para una fecha determinada (es decir, DATE(start_date,' start of month') ). Puede encontrar información precisa sobre los modificadores de fecha y hora en la documentación de SQLite.

Llamamos a la nueva columna que contiene la fecha de inicio actualizada new_start_date . La nueva fecha de inicio de producción para el escritorio es 2019-09-17 , un mes después de la fecha original de 2019-08-17 . Tenga en cuenta que para 2019-10-31 , la nueva fecha es 2019-12-01; esto se debe a que noviembre tiene 30 días, no 31.


No