找到一個給定月份的最後一個工作日在PostgreSQL的找到最後一個工作日給定月份PostgreSQL中
用法:如果月底恰逢週六或週日,回到上週五,否則使用月末
例子:
- 2013年3月31日適逢星期日,所以回到2013年3月29日
- 二○一三年十一月三十○日恰逢週六,所以回到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
感謝
什麼不同類型的假期?你還需要特別處理嗎?在這種情況下,可以在適當的時間段內在每個月的最後一天填充一張小桌子。 – plundra 2013-04-11 14:59:13
這是一種複雜的說法:「返回給定月份的最後一個工作日?」 – 2013-04-11 15:12:11
感謝plundra。現在你讓我想我需要重新提出我的問題。我可以看到假日是如何考慮的。在我的數據世界中,導致錯過月結束日期的唯一事件是月末在星期六或星期日。 – 2013-04-11 15:24:36