From: Wetmore, Matthew (CTR) <Matthew.Wetmore@express-scripts.com>
To: pgsql-admin@lists.postgresql.org <pgsql-admin@lists.postgresql.org>
Subject: GENERATE AS
Date: Thu, 22 Jun 2023 20:00:31 +0000
Message-ID: <7c48174f8ce449af8f3e875bdeca7150@express-scripts.com> (raw)
Hi, I have this issue and now I'm just wasting time. Can you tell me what I'm doing wrong?
I'd like to subtract a column timestamp hour from current hour to give me hours elapased.
How do I do this easily?
I think I've tried every combination of types and casting.
Thanks in advance.
---------------------------
1. ALTER TABLE matt
add column matt_time timestamp with time zone default current_timestamp;
2. select matt_time FROM matt;
2023-06-22 14:31:16.548622-04 timestamp with time zone
3. Select (date_part('hour', current_timestamp)::INT - date_part('hour', matt_time)::INT) FROM matt
0 (same hour, so 0 is OK) INT
4. ALTER TABLE auto_auth.matt
ADD column matt_hour INT GENERATED ALWAYS AS (date_part('hour', current_timestamp)::INT - date_part('hour', matt_time)::INT) stored
ERROR: generation expression is not immutable
SQL state: 42P17
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-admin@postgresql.org
Cc: Matthew.Wetmore@express-scripts.com, pgsql-admin@lists.postgresql.org
Subject: Re: GENERATE AS
In-Reply-To: <7c48174f8ce449af8f3e875bdeca7150@express-scripts.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox