gpt4 book ai didi

sql - 在 PostgreSQL 中查找给定月份的最后一个工作日

转载 作者:行者123 更新时间:2023-11-29 11:48:26 28 4
gpt4 key购买 nike

在 PostgreSQL 中查找给定月份的最后一个工作日

用法:如果月末是星期六或星期日,则返回前一个星期五,否则使用月末

例子:

  • 2013 年 3 月 31 日是星期天,所以 2013 年 3 月 29 日返回
  • 2013 年 11 月 30 日是星期六,所以 2013 年 11 月 29 日返回

如何在 PostgreSQL SQL 中写这个?

到目前为止,我得到的是这个(仅返回月末,但当月末落在星期六或星期日时不存在):

SELECT as_of_dt, sum(bank_shr_bal) as bank_shr_bal 
FROM hm_101.vw_gl_bal
WHERE as_of_dt = (date_trunc('MONTH', as_of_dt) + INTERVAL '1 MONTH - 1 day')::date
GROUP BY 1

谢谢

最佳答案

A calendar table确实简化了此类查询的 SQL。 (“weekdays”表实际上是一个基于日历表的 View 。它的结构应该很明显。)

select max(cal_date)
from weekdays
where cal_date < '2013-05-01'

select max(cal_date)
from weekdays
where cal_date between '2013-04-01' and '2013-04-30'

关于sql - 在 PostgreSQL 中查找给定月份的最后一个工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15950859/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com