Consulta SQL para calcular el número total de semanas entre dos fechas específicas

Aquí veremos cómo calcular el número de semanas entre las dos fechas dadas con la ayuda de la consulta SQL usando la función DATEDIFF().

Para fines de demostración, crearemos una tabla demo_orders en una base de datos llamada » geeks «.

Creación de la base de datos:

Use la siguiente instrucción SQL para crear una base de datos llamada geeks :

CREATE DATABASE geeks;

Uso de la base de datos:

Use la siguiente instrucción SQL para cambiar el contexto de la base de datos a geeks:

USE geeks;

Definición de 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,
ITEM_NAME VARCHAR(30) NOT NULL,
ORDER_DATE DATE NOT NULL
);

Puede usar la siguiente declaración para consultar la descripción de la tabla creada:

EXEC SP_COLUMNS demo_orders;

Agregando datos a la tabla:

Use la siguiente declaración para agregar datos a la tabla demo_orders :

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');

Para verificar el contenido de la tabla, use la siguiente declaración:

SELECT * FROM demo_orders;

Ahora busquemos el número de semanas entre las fechas del pedido de ‘Maserati’ y ‘Ferrari’ en la tabla usando la función DATEDIFF().

A continuación se muestra la sintaxis de la función DATEDIFF() para encontrar el no. de semanas entre dos fechas dadas.

Syntax: DATEDIFF(week or ww or wk, <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(ww, @start, @end) AS number_of_weeks;

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 *