📌  相关文章
📜  获取数据库中一周的第一天和最后一天的 SQL 查询

📅  最后修改于: 2022-05-13 01:54:26.148000             🧑  作者: Mango

获取数据库中一周的第一天和最后一天的 SQL 查询

SQL 查询是用特定语言编写的用于执行特定任务的程序的单行语句。查询由 SQL 中的一些预定义函数组成,如 SELECT、CREATE 等。因此,在本文中,我们将学习 SQL 查询以获取数据库中一周的第一天和最后一天。所以让我们首先创建一个数据库来完成我们的任务,这里我们将使用 Microsoft SQL Server:

步骤 1:创建一个名为 GFG 的数据库:

CREATE DATABASE GFG

第 2 步:使用此数据库:

USE GFG

第 3 步:在此数据库中创建一个表:

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

描述这个表:



sp_help 'dbo.geeksforgeeks'

第 4 步:在此数据库中插入日期值:

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

现在,我们正在检查数据是否插入成功:

SELECT * FROM [dbo].[geeksforgeeks]

第 5 步:现在检查一周的第一天:

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

所以我们可以看到一周的第一天是星期天

第 6 步:现在我们将使用 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';

第 7 步:现在我们将使用 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';