En este artículo, discutiremos la descripción general de Consulta SQL para calcular el número de meses entre dos fechas específicas y lo implementaremos con la ayuda de un ejemplo para una mejor comprensión. Vamos a discutirlo paso a paso.
Descripción general:
aquí veremos cómo calcular el número de meses entre las dos fechas dadas con la ayuda de la consulta SQL utilizando la función DATEDIFF(). Para fines de demostración, crearemos una tabla demo_orders en una base de datos llamada «geeks» . Existen los siguientes pasos para implementar la consulta SQL para calcular el número de meses entre dos fechas específicas de la siguiente manera.
Paso 1: Creación de la base de datos:
use la siguiente declaración SQL para crear una base de datos llamada geeks de la siguiente manera.
CREATE DATABASE geeks;
Paso 2: Uso de la base de datos:
use la siguiente instrucción SQL para cambiar el contexto de la base de datos a geeks de la siguiente manera.
USE geeks;
Paso 3: Definición de la tabla:
tenemos la siguiente tabla de demostración en nuestra base de datos de geeks.
CREATE TABLE demo_orders ( ORDER_ID INT IDENTITY(1,1) PRIMARY KEY, --IDENTITY(1,1) is same as AUTO_INCREMENT in MySQL. --Starts from 1 and increases by 1 with each inserted row. ITEM_NAME VARCHAR(30) NOT NULL, ORDER_DATE DATE );
Paso 4: Verificación:
puede usar la siguiente declaración para consultar la descripción de la tabla creada:
EXEC SP_COLUMNS demo_orders;
Producción :
NOMBRE DE LA TABLA | COLUMN_NAME | TIPO DE DATOS | ESCRIBE UN NOMBRE | PRECISIÓN | LONGITUD | OBSERVACIONES |
---|---|---|---|---|---|---|
pedidos_demo | SOLICITAR ID | 4 | identidad int | 10 | 4 | NULO |
pedidos_demo | NOMBRE DEL ÁRTICULO | 12 | varchar | 30 | 30 | NULO |
pedidos_demo | FECHA DE ORDEN | -9 | fecha | 10 | 20 | NULO |
Paso 5: Adición de datos a la tabla:
use la siguiente declaración para agregar datos a la tabla demo_orders de la siguiente manera.
INSERT INTO demo_orders --no need to mention columns explicitly as we are inserting into all columns and ID gets --automatically incremented. VALUES ('Maserati', '2007-10-03'), ('BMW', '2010-07-23'), ('Mercedes Benz', '2012-11-12'), ('Ferrari', '2016-05-09'), ('Lamborghini', '2020-10-20');
Paso 6: Verificación:
para verificar el contenido de la tabla, use la siguiente declaración de la siguiente manera.
SELECT * FROM demo_orders;
Producción :
SOLICITAR ID | NOMBRE DEL ÁRTICULO | FECHA DE ORDEN |
---|---|---|
1 | Maserati | 2007-10-03T00:00:00.000Z |
2 | BMW | 2010-07-23T00:00::00.00Z |
3 | mercedes benz | 2012-11-12T00:00::00.00Z |
4 | ferrari | 2016-05-09T00:00::00.00Z |
5 | Lamborghini | 2020-10-20T00:00::00.00Z |
Paso 7: consulta SQL para calcular el número de meses entre dos fechas específicas:
ahora busquemos el número de meses entre las fechas de un pedido de ‘Maserati’ y ‘Ferrari’ en la tabla usando la función DATEDIFF(). A continuación se muestra una sintaxis para la función DATEDIFF().
DATEDIFF(day/month/year, <start_date>, <end_date>);
Ejemplo –
DECLARE @start VARCHAR(10) = ( SELECT order_date FROM demo_orders WHERE item_name = 'Maserati'), @end VARCHAR(10) = ( SELECT order_date FROM demo_orders WHERE item_name = 'Ferrari') --@start variable holds the start date(i.e date of Maserati being purchased). --@end variable holds the end date (i.e date of Ferrari being purchased). SELECT DATEDIFF(month, @start, @end) AS number_of_months; --In place of month we could use year or day and that would give the respective no. of years and --days in between those dates.
Producción :