PostgreSQL:为时间戳添加一个数字秒数

时间:2015-05-31 12:12:56

标签: postgresql timestamp intervals timedelta

问题

考虑一个包含两个字段的表:一个被称为creation_time的时间戳和一个被称为expiration_time_seconds的整数秒。因此,

SELECT creation_time, expiration_time_seconds FROM items;

给出:

       creation_time        | expiration_time_seconds
----------------------------+-------------------------
 2014-11-18 05:38:05.368598 |                    3600
 2014-11-19 21:38:10.380777 |                 2592000
 2014-11-19 21:41:28.152839 |                    3600
 2014-11-18 17:15:11.501205 |                    3600
 2014-11-19 21:43:38.815154 |                    3600
 ...

如何将到期时间添加到创建时间以获取到期时间?

我尝试了什么

从常量文本创建间隔很简单:

SELECT creation_time+interval '3600 seconds' FROM question;

给出了:

          ?column?
----------------------------
 2014-11-18 06:38:05.368598
 2014-11-19 22:38:10.380777
 2014-11-19 22:41:28.152839
 ...

但我没有使用自定义文本或整数作为间隔。

1 个答案:

答案 0 :(得分:2)

使用expiration_time_seconds列乘以恒定间隔:

SELECT creation_time+interval '1 second'*expiration_time_seconds FROM items;

信用:Re: Create interval using column value?,PostgreSQL论坛