【问题标题】:Using select results as variable in Postgresql在 Postgresql 中使用选择结果作为变量
【发布时间】:2023-01-13 18:15:30
【问题描述】:

假设我想在变量中分配几个 select 语句结果,就像我在 Python 中那样做。该查询应该是什么样子?我试过 WITH alias AS () 但没有成功。 我要存档的是计算两个特定消息之间的增量。

我正在寻找这样的东西:

time1 = ()
time2 = ()

result = time2-time1 

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    您当然可以使用匿名代码块来做到这一点。但是将它写成一个函数可能会好得多。

    像这样的东西可能就是你要找的东西:

    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
    $$;
    

    【讨论】:

    • 将选择放入 BEGIN 块后出现此错误。 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
    • 编辑了我的答案 - 我没有意识到你在使用时间戳
    猜你喜欢
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 2020-08-27
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2014-01-06
    相关资源
    最近更新 更多