我有一个表示能力锁定时间的字段,以毫秒为单位。在表中它将以如下方式表示:
|id|ability_name|lock_time|
|1 | hook| 10000| // or 10 seconds in interval type
而且我在某些事件上需要触发,需要计算锁定期的结束日期。存储此冷却时间以进行简单计算的最佳方法是什么?然后将在触发过程中使用它。
显然,您需要知道起点。如果不知道间隔的开始时间,则无法计算间隔的结束。
[假设开始时间存储在名为timestamp with time zone
的created
列中,并且如果lock_time
存储为interval
,则计算将像这样简单:
created + lock_time
如果您坚持将lock_time
存储为毫秒值,则会稍微复杂一些,如下所示:
created + lock_time * INTERVAL '1 millisecond'
这表明,使用timestamp
和interval
数据类型而不是使用数字类型几乎总是更好。显示时,不仅您的SQL会更简单,而且值本身也会更有意义。