pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
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

view thread (9+ messages)  latest in thread

Message-ID: <7c48174f8ce449af8f3e875bdeca7150@express-scripts.com>
Permalink:  ../7c48174f8ce449af8f3e875bdeca7150@express-scripts.com/
Also on:    postgresql.org/message-id/7c48174f8ce449af8f3e875bdeca7150@express-scripts.com

 · 

reply

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