我有一个日期表,列:
我想在Redshift中创建一个用户定义的函数,该函数在两个日期之间输出多少个工作日。在select语句中将如下所示:
select business_days(start_date timestamp, end_date timestamp) as integer
例如:
2018-06-29 is a friday business day
2018-06-30 saturday non business day
2018-07-01 sunday non business day
2018-07-02 business day
select business_days( '2018-06-29', '2018-07-02')
应该输出2
Redshift不允许在函数内部进行聚合,我正在寻找解决方法。
答案 0 :(得分:1)
Amazon Redshift用户定义函数无法访问网络,也不能访问存储在表中的数据。
作为一种替代方法,您可以create a Python function来计算两个日期之间的时差。
如果您只想跳过周末,可以Count number of days between dates, ignoring weekends。
如果您有更复杂的逻辑,例如跳过每年不同的假期,则需要将该信息提供给Python函数,例如在函数本身中包含特殊日期(例如,在假期列表中)