我尝试存储不同服务的可用时间。 (每个工作日(8、9 小时)、24/7 等) 一个工作日可以有不同的办公时间(08:00-16:00 或 09:00-17:00、08:00-18:00 等)
还有国定假日,正常工作日就像周末,任何给定的周末也可以是工作日。
将其存储在数据库 (PostgreSQL) 中的最佳方式是什么?
背景
主要目标是计算给定时间范围内有多少分钟在服务时间内。
A)服务时间仅为工作日(08:00-16:00),日期范围为 [2019-10-21 15:00(星期一)- 2019-10-22 09:00(星期二)]。整个航程长达18小时,但服务时间只有2小时。
B) 我也想计算如果我知道开始时间(2019-10-21 15:00)并且有3个小时完成工作(工作时间)那么什么时候是结束日期? (2019-10-22 10:00 - 星期一 1 小时,星期二 2 小时)
最佳答案
我会完全按照您描述的方式存储数据。
您可以为工作窗口准备一张 table ,即周一至周五 08:00 至 16:00
每项服务都有其日期范围、开始和停止。我猜某项服务会有多个日期范围,因此您可能需要一个包含 dateRangeId
、start
和 stop
列的日期范围表。
当你想计算一些东西时,你会提取服务数据和工作日数据,计算实际服务时间以及你需要回答的任何其他问题:)
关于node.js - 计算日期范围的重叠量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58542416/