这是我的数据集。
emp_id|emp_name|work_start_date|work_end_date|days_worked_on|
------+--------+---------------+-------------+--------------+
1|A | 2023-03-01| 2023-03-03| 2|
2|B | 2023-03-04| 2023-03-04| 0|
实际上,我想计算多少天的人工作。所以我计算的基础上,下面的查询。
select
emp_id
,emp_name
,work_start_date
,work_end_date
,work_end_date - work_start_date as days_worked_on
from demo.stackquestions;
理想情况下,人员A在03/01、03/02和03/03工作。总共3天。但在计算work_end_date - work_start_date时,给出了2天。(技术上是的。但实际上答案是错误的。)为了计算正确的天数,我是否需要在最后加1(+1)?
work_end_date - work_start_date +1 as days_worked_on
这是正确的做法吗?请分享你的想法。
1条答案
按热度按时间i7uq4tfw1#
使用generate_series获取日期范围内的日期计数。这里假设
2023-03-04, 2023-03-04
等于一个工作日。