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