【问题标题】:What is the most convenient alternative to store quantity of time elapsed in a database?在数据库中存储经过的时间量的最方便的替代方法是什么?
【发布时间】:2019-03-04 13:35:54
【问题描述】:
考虑到经过的时间。例如:1个月、1小时30分钟、45分钟、2周等,在moment js库中是一个叫做duration的概念,在Postgres数据库中是一个数据类型区间。
两者都是相同概念的抽象,在后端/前端计算方面各有利弊。
存储这些数据的最佳方式是什么:
存储毫秒数的整数,或
Postgres 的 interval 类型的字段。
所以在处理这些数据时,尽管可能在相同或不同的时间单位中解释持续时间?
【问题讨论】:
标签:
postgresql
database-design
momentjs
intervals
duration
【解决方案1】:
使用专为该目的设计的数据类型通常是个好主意,在本例中为interval。
主要优点是interval 像 1 month 或 1 year 1 hour(确实 不 对应于特定的秒数)如果您将其添加到或减去它将按预期运行它来自时间戳。
仅当您不需要像上面那样正确表示区间时,将区间存储为数字数据类型才能正常工作 - 但您也可以使用 interval,如 36173.034 seconds,它也可以正常工作.