在执行数据分析或报告生成时,获取本月最后一个工作日(Last Working Day of the Month,LWD)至关重要。SQL 中有几种 可以实现这一目的,本文将介绍两种常用的 。
1:使用 DATEADD() 函数
DATEADD() 函数可将指定的时间间隔添加到给定日期。可以利用此函数将一个月添加到当前日期,并使用 DATETIMEFROMPARTS() 函数从结果中提取最后一个工作日。
sql
DECLARE @CurrentDate DATETIME = GETDATE();
DECLARE @LWD DATETIME;
SELECT @LWD = DATETIMEFROMPARTS(
YEAR(@CurrentDate),
MONTH(@CurrentDate) + 1,
DAY(@CurrentDate) - 1,
DATEPART(HOUR, @CurrentDate),
DATEPART(MINUTE, @CurrentDate),
DATEPART(SECOND, @CurrentDate)
);
PRINT @LWD;
2:使用 EOMONTH() 函数
EOMONTH() 函数返回给定日期所在月份的最后一天。可以结合 DATEADD() 函数将一个月添加到当前日期,然后使用 EOMONTH() 函数获取其最后一天。
sql
DECLARE @CurrentDate DATETIME = GETDATE();
DECLARE @LWD DATETIME;
SELECT @LWD = EOMONTH(DATEADD(MONTH, 1, @CurrentDate));
PRINT @LWD;
以上两种 都可以在 SQL 中有效获得本月最后一个工作日。根据具体情况和需求,可以选择最合适的选项。