设置“有效直到"带有计算时间戳的值 [英] set "VALID UNTIL" value with a calculated timestamp

查看:67
本文介绍了设置“有效直到"带有计算时间戳的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用当前时间计算的时间戳创建用户或更改密码.例子:

I want to create user or change password with a timestamp calculated over current time. example:

# CREATE USER user WITH PASSWORD 'password12345678' VALID UNTIL '(NOW() + interval 1 month)';

当然是无效的:

错误:带时区的时间戳类型的输入语法无效:(NOW() + interval 1 month)"

ERROR: invalid input syntax for type timestamp with time zone: "(NOW() + interval 1 month)"

推荐答案

CREATE USER 这样的实用命令不接受表达式,只接受文字.您需要动态 SQL.

Utility commands like CREATE USER do not accept expressions, only literals. You need dynamic SQL.

DO
$do$
BEGIN
   EXECUTE format($$CREATE USER myuser WITH PASSWORD 'password12345678' VALID UNTIL %L$$, NOW() + interval '1 month');
END
$do$;

详细说明:

这篇关于设置“有效直到"带有计算时间戳的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆