📅  最后修改于: 2023-12-03 14:47:36.229000             🧑  作者: Mango
在SQL Server中,我们可以通过使用内置的日期和时间函数来获取上周日的日期。下面介绍两种方法:
可以通过以下步骤来获取上周末的日期:
获取当前日期:使用 GETDATE() 函数获取当前日期时间。
计算当前日期距离上周末的天数(6 天)。使用 DATEPART() 函数获取当前日期是星期几,并将其转换为数字格式。然后再将当前日期距离上周末的天数计算出来。
计算上周末的日期。用当前日期减去上周末的天数。
以下是获取上周末日期的 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 中获取上周日(或上周末)的日期。方法一较为直观,可理解性更强;方法二使用了函数嵌套,可读性略差。根据实际情况选择适合自己的方法。