postgresql 如何计算票龄(不包括周末)

h7wcgrx3  于 2022-12-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(144)

我正在使用创建日期和当前日期来计算票龄。我很难排除周末。当使用DOW函数时,它只排除创建日期字段中的周末,这不能提供准确的结果。
示例:

select CURRENT_DATE - date_created::date AS "Case Aging"
where EXTRACT(DOW FROM date_created::date) <> '0' 
AND EXTRACT(DOW FROM date_created::date) <> '6'
from Tickets;
oknrviil

oknrviil1#

构建一个从date_created开始到今天的日期列表,并计算其中不包括星期六和星期日的元素。

with the_table(date_created) as 
(
 values
 ('2022-03-01'::date), ('2022-04-11'), ('2022-10-01'), ('2022-12-06'::date)
) -- sample data

select date_created, (
   select count(*) - 1 
   from generate_series(date_created, current_date, interval '1 day') g
   where extract(ISODOW from g) < 6
 ) as ticket_age
from the_table;

相关问题