Calcule el número de meses entre dos fechas específicas en SQL

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 :

Publicación traducida automáticamente

Artículo escrito por yoji y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *