如何将默认时间戳设置为now()+ n天?

时间:2018-01-26 08:02:54

标签: postgresql

我正在开发一个auth流程,其中使用了具有到期时间戳的令牌。 当用户成功登录时,会生成令牌并将其保存在数据库中。

我知道我可以添加等于expires的{​​{1}}时间戳,但如何自动添加now()小时/天?

2 个答案:

答案 0 :(得分:1)

只需将其用作默认表达式:

create table token
(
   id integer primary key,
   token text,
   expires timestamp default current_timestamp + interval '8' hour
);

答案 1 :(得分:1)

例如:

t=# create table t5(t timestamp default now() + '1 day'::interval);
CREATE TABLE
t=# insert into t5 default values;
INSERT 0 1
t=# select now(),t from t5;
              now              |             t
-------------------------------+----------------------------
 2018-01-26 08:05:06.641249+00 | 2018-01-27 08:04:57.035831
(1 row)