Con este artículo, aprenderemos cómo excluir los días de fin de semana en una consulta del servidor SQL. Para esta tarea, usamos la función de servidor MS.SQL DATEADD ( ) . Esta función en SQL Server se usa, para resumir, un intervalo de tiempo o fecha a una fecha específica y luego devuelve la fecha modificada.
Sintaxis:
DATEADD(interval, number, date)
Entonces, primero crearemos una base de datos:
Paso 1: Crear base de datos:
Consulta:
CREATE DATABASE GFG
Paso 2: Uso de la base de datos
USE GFG
Paso 3: crea una tabla
Cree una tabla (EmployeeCalender) en la base de datos para almacenar los datos.
CREATE TABLE EmployeeCalender ( EmpCalDate datetime NOT NULL , IsBusinessDay char (1) )
Paso 4: Insertar datos en una tabla
Consulta:
/* Data Inserted for a full week dates*/ INSERT INTO EmployeeCalender (EmpCalDate, IsBusinessDay) VALUES ('9/06/2021','Y') INSERT INTO EmployeeCalender (EmpCalDate, IsBusinessDay) VALUES ('9/07/2021','Y') INSERT INTO EmployeeCalender (EmpCalDate, IsBusinessDay) VALUES ('9/08/2021','Y') INSERT INTO EmployeeCalender (EmpCalDate, IsBusinessDay) VALUES ('9/09/2021','Y') INSERT INTO EmployeeCalender (EmpCalDate, IsBusinessDay) VALUES ('9/10/2021','Y') INSERT INTO EmployeeCalender (EmpCalDate, IsBusinessDay) VALUES ('9/11/2021','N') INSERT INTO EmployeeCalender (EmpCalDate, IsBusinessDay) VALUES ('9/12/2021','N')
Paso 5: Ahora escribiremos la consulta SQL que obtendrá todos los días de la semana excepto los días no laborables.
Consulta:
SELECT * FROM EmployeeCalender WHERE EmpCalDate >= DATEADD(d,-7,GETDATE()) AND EmpCalDate < DATEADD(d,7,GETDATE()) AND IsBusinessDay ='Y'