Consulta SQL para obtener el primer y último día de una semana en una base de datos

Una consulta SQL es una declaración de una sola línea de un programa escrito en un idioma particular para realizar una tarea específica. Una consulta consta de algunas funciones predefinidas en SQL como SELECCIONAR, CREAR, etc. Entonces, en este artículo, aprenderemos sobre la consulta SQL para obtener el primer y último día de una semana en una base de datos. Así que primero creemos una base de datos para hacer nuestra tarea, aquí usaremos Microsoft SQL Server:

Paso 1: Cree una base de datos llamada GFG:

CREATE DATABASE GFG

Paso 2: Usa esta base de datos:

USE GFG

Paso 3: Crea una tabla en esta base de datos:

CREATE TABLE geeksforgeeks(
id integer,
FirstDay varchar(20)
)

Describa esta tabla:

sp_help 'dbo.geeksforgeeks'

Paso 4: Inserte los valores de las fechas en esta base de datos:

INSERT INTO [dbo].[geeksforgeeks]
([id] ,[FirstDay])
VALUES
(1, 'Monday')
GO

INSERT INTO [dbo].[geeksforgeeks]
([id] ,[FirstDay])
VALUES
(2, 'Tuesday')
GO

INSERT INTO [dbo].[geeksforgeeks]
([id] ,[FirstDay])
VALUES
(3, 'Wednesday')
GO

INSERT INTO [dbo].[geeksforgeeks]
([id] ,[FirstDay])
VALUES
(4, 'Thursday')
GO

INSERT INTO [dbo].[geeksforgeeks]
([id] ,[FirstDay])
VALUES
(5, 'Friday')
GO

INSERT INTO [dbo].[geeksforgeeks]
([id] ,[FirstDay])
VALUES
(6, 'Saturday')
GO

INSERT INTO [dbo].[geeksforgeeks]
([id] ,[FirstDay])
VALUES
(7, 'Sunday')
GO

Ahora, estamos comprobando que los datos se inserten con éxito o no: 

SELECT * FROM [dbo].[geeksforgeeks]

Paso 5: Ahora revisa el primer día de la semana:

SELECT id, FirstDay FROM [dbo].[geeksforgeeks] WHERE id = @@DATEFIRST 

Entonces podemos ver que el primer día de la semana es el domingo.

Paso 6: Ahora averiguaremos cuál es el primer día de la próxima semana usando la función DATEADD():

/* 
    If you want to find out the first day of 
    upcoming weeks then set @weeks as a positive integer
    with number of weeks, else negative integer. 
*/

DECLARE @weeks integer;
SET @weeks = 1;
SELECT DATEADD(WEEK, @weeks, DATEADD(DAY, 1-DATEPART(WEEKDAY, GETDATE()), 
               DATEDIFF(dd, 0, GETDATE()))) as 'First Day of next week';

Paso 7: Ahora averiguaremos cuál es el último día de la próxima semana usando la función DATEADD:

/* 
    If you want to find out the first day of 
    previous weeks then set @weeks as a negative integer
    with number of weeks, else negative integer. 
*/

DECLARE @weeks integer;
SET @weeks = 1;
SELECT DATEADD(wk, +2, DATEADD(DAY, 0-DATEPART(WEEKDAY, GETDATE()), 
               DATEDIFF(dd, 0, GETDATE()))) as 'Last Day of Next Week';

Publicación traducida automáticamente

Artículo escrito por idevesh 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 *