我目前正试图通过将sla时间添加到创建请求的时间来计算表中的到期日期。据我所知,解决这个问题的方法是创建一个包含工作日和小时的表,并查询该表以查找截止日期。然而,红移不允许声明变量。我想知道如何在红移中创建一个工作时间表,如果这是不可能的,我将如何通过其他方式计算到期日。谢谢!
您似乎希望提供一个时间戳,然后计算'n个工作小时后'的时间戳,很可能要考虑到某些规则,例如:
- 工作日:朝九晚五的
- 周末:不上班
- 节假日:偶尔的工作日,没有时间
这可以通过创建一个标量Python UDF - Amazon Redshift来实现,它将传递一个'开始'时间戳和几个小时,并将返回'结束'时间戳。
请注意,标量udf不能访问Redshift的表或"外部调用",所以它需要是自包含的。
有代码在网络上显示如何找到两个日期之间的小时数,不包括周末和某些假期在Python?businessshours包-堆栈溢出。您需要修改这样的代码以指定持续时间,而不是查找持续时间。
"创建工作时间表"的替代方法;当试图查找两个时间戳之间的工作小时数时将工作时间添加到时间戳时将会工作得很好。