📜  sql server 获取上周日的日期 - SQL (1)

📅  最后修改于: 2023-12-03 14:47:36.229000             🧑  作者: Mango

SQL Server获取上周日的日期

在SQL Server中,我们可以通过使用内置的日期和时间函数来获取上周日的日期。下面介绍两种方法:

方法一:

可以通过以下步骤来获取上周末的日期:

  1. 获取当前日期:使用 GETDATE() 函数获取当前日期时间。

  2. 计算当前日期距离上周末的天数(6 天)。使用 DATEPART() 函数获取当前日期是星期几,并将其转换为数字格式。然后再将当前日期距离上周末的天数计算出来。

  3. 计算上周末的日期。用当前日期减去上周末的天数。

以下是获取上周末日期的 SQL 代码片段:

DECLARE @currentDate DATETIME = GETDATE();
DECLARE @dayOfWeek INT = DATEPART(WEEKDAY, @currentDate);

-- Calculate days until last Sunday
DECLARE @daysUntilLastSunday INT = 7 - @dayOfWeek;

-- Calculate last Sunday's date
DECLARE @lastSundayDate DATETIME = DATEADD(DAY, -@daysUntilLastSunday, @currentDate);

SELECT @lastSundayDate AS "Last Sunday Date";
方法二:

另一种方法是使用 DATEADD() 和 @@DATEFIRST 函数直接获取上周日的日期。

以下是获取上周末日期的 SQL 代码片段:

SET DATEFIRST 1; -- Set Monday as the first day of the week

DECLARE @currentDate DATETIME = GETDATE();

-- Calculate last Sunday's date
DECLARE @lastSundayDate DATETIME = DATEADD(WEEK, -1, DATEADD(DAY, 1 - DATEPART(WEEKDAY, @currentDate), @currentDate));

SELECT @lastSundayDate AS "Last Sunday Date";

以上两种方法可以在 SQL Server 中获取上周日(或上周末)的日期。方法一较为直观,可理解性更强;方法二使用了函数嵌套,可读性略差。根据实际情况选择适合自己的方法。