要拥有上一个工作日:
select max(s.a) as work_dayfrom ( select s.a::date from generate_series('2012-01-02'::date, '2050-12-31', '1 day') s(a) where extract(dow from s.a) between 1 and 5 except select holiday_date from holiday_table ) swhere s.a < '2012-03-19';如果要下一个工作日,只需反转查询即可。



