是否可以找到上个月的最后一个工作日?我知道我可以使用SELECT (date_trunc('month', now())::date - 1)
来获取上个月的最后一天,但是如何获取最后的“工作日”?
答案 0 :(得分:2)
我相信这可以满足您的需求
df_incomplete <- structure(list(Team = c("NSH", "NSH", "NSH", "NSH", "NSH", "NSH",
"NSH"), PTS = c(88L, 88L, 88L, 104L, 96L, 94L, 117L), W = c(38L,
38L, 38L, 47L, 41L, 41L, 53L), GF = c(214L, 214L, 214L, 226L,
224L, 238L, 261L), GA = c(233L, 233L, 233L, 202L, 213L, 220L,
204L), S = c(2382L, 2382L, 2382L, 2614L, 2507L, 2557L, 2641L),
SA = c(2365L, 2365L, 2365L, 2304L, 2231L, 2458L, 2650L),
Year = c(2011L, 2012L, 2014L, 2015L, 2016L, 2017L, 2018L)), .Names = c("Team",
"PTS", "W", "GF", "GA", "S", "SA", "Year"), class = "data.frame", row.names = c(NA,
-7L))
此类请求通常暗示需要日历表。
答案 1 :(得分:0)
小猪不支持戈登的答案,我想这就是你想要的:
SELECT (
date_trunc('month', current_date) - interval '1 day' -
(case extract(dow from date_trunc('month', current_date) - interval '1 day')
when 0 then 2
when 6 then 1
else 0
end) * interval '1 day'
)::date as last_weekday_in_last_month;
假设您的周末为0(星期日)和6(星期六)。它使用OP的原始逻辑来查找上个月的最后日期,然后如果最后一个日期是0或6,则使用Gordon的CASE
逻辑减去更多天。