【发布时间】:2023-01-13 18:15:30
【问题描述】:
假设我想在变量中分配几个 select 语句结果,就像我在 Python 中那样做。该查询应该是什么样子?我试过 WITH alias AS () 但没有成功。 我要存档的是计算两个特定消息之间的增量。
我正在寻找这样的东西:
time1 = ()
time2 = ()
result = time2-time1
【问题讨论】:
标签: postgresql
假设我想在变量中分配几个 select 语句结果,就像我在 Python 中那样做。该查询应该是什么样子?我试过 WITH alias AS () 但没有成功。 我要存档的是计算两个特定消息之间的增量。
我正在寻找这样的东西:
time1 = ()
time2 = ()
result = time2-time1
【问题讨论】:
标签: postgresql
您当然可以使用匿名代码块来做到这一点。但是将它写成一个函数可能会好得多。
像这样的东西可能就是你要找的东西:
DO $$
DECLARE time1 TIMESTAMP;
DECLARE time2 TIMESTAMP;
BEGIN
SELECT '2022-02-15 14:52:51.252859+01'::timestamp INTO time1;
SELECT '2022-02-15 19:52:51.252859+01'::timestamp INTO time2;
RAISE NOTICE 'result = %', time2 - time1;
END
$$;
【讨论】:
SQL Error [22P02]: ERROR: invalid input syntax for type integer: "2022-02-15 14:52:51.252859+01" Where: PL/pgSQL function inline_code_block line 5 at SQL statement