在一个包中,我有两个结构如下的命名空间:
NamespaceA -> work_id, start_date, end_date
NamespaceB -> calender_date, is_holiday
我想计算每个work_id
的start_date
和end_date
之间的工作日数。
我尝试用如下表达式创建一个新的数据项:
=
[calender_date] between [start_date] and [end_date]
and
is_holiday = 'N'
=
上述表达式返回true或false,表示在给定的两个日期之间是否存在工作日。
但是我想要的是两个给定日期之间的工作日数。我试着用上面的计数,它没有工作。
你能让我知道我如何改变上面的表达式,以产生一个计数或任何其他方式,我可以得到所需的结果(即,两个给定日期之间的工作日数为每个work_id使用上述命名空间)。
要计算两个日期之间的工作日,您应该使用DIFFDATE函数并在Where子句中放置您的条件…在这种情况下,您将在两个工作日之间获得所需的工作日。
例如:SELECT DATEDIFF(day,'start_date','end_date') AS WorkingDaysFROM NamespaceA a
INNER JOIN命名空间b在a.start_date和a.end_date之间设置b.calender_date
,
a.[start_date]和a.[end_date]之间的[calender_date]and b.is_holiday = 'N'