node.js - 计算日期范围的重叠量

标签 node.js database postgresql momentjs

我尝试存储不同服务的可用时间。 (每个工作日(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

每项服务都有其日期范围、开始和停止。我猜某项服务会有多个日期范围,因此您可能需要一个包含 dateRangeIdstartstop 列的日期范围表。

当你想计算一些东西时,你会提取服务数据和工作日数据,计算实际服务时间以及你需要回答的任何其他问题:)

关于node.js - 计算日期范围的重叠量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58542416/

相关文章:

node.js - 即时将文件从 S3 移动到 AWS EFS

mysql - 修复 Table_locks_waited 在 MySQL 中很高

php - 使用 PHP 连接 MSSQL

postgresql - 关于 POSTGRES 表分区的建议

Node.js 并行调用同一子休息服务并聚合响应

javascript - 在 Node.js/Express.js 中,如何将 JSON 对象从服务器传输到客户端?

php - 如何通过在php中按时间顺序插入来跟踪mysql数据库表条目

postgresql - 在 Postgresql 中向用户授予权限从不授予权限

ruby-on-rails - rails 4 : ConnectionTimeoutError on heroku basic plan

node.js - 如何在单个 mongo 查询中将一个字段的值分配给另一个字段