如何在postgresql中保存时间间隔[关闭]

问题描述 投票:-1回答:1

我有一个表示能力锁定时间的字段,以毫秒为单位。在表中它将以如下方式表示:

|id|ability_name|lock_time|
|1 |        hook|    10000| // or 10 seconds in interval type

而且我在某些事件上需要触发,需要计算锁定期的结束日期。存储此冷却时间以进行简单计算的最佳方法是什么?然后将在触发过程中使用它。

postgresql
1个回答
1
投票

显然,您需要知道起点。如果不知道间隔的开始时间,则无法计算间隔的结束。

[假设开始时间存储在名为timestamp with time zonecreated列中,并且如果lock_time存储为interval,则计算将像这样简单:

created + lock_time

如果您坚持将lock_time存储为毫秒值,则会稍微复杂一些,如下所示:

created + lock_time * INTERVAL '1 millisecond'

这表明,使用timestampinterval数据类型而不是使用数字类型几乎总是更好。显示时,不仅您的SQL会更简单,而且值本身也会更有意义。

© www.soinside.com 2019 - 2024. All rights reserved.