On 6/4/21 10:58 AM, Laura Smith wrote:
One other question, what's the syntax for manipulating only the upper
bound of a range.
Say I have a Postgres function that does a "SELECT INTO" for an
existing tsrange. Is there an easy way to change the variable's
upper bound whilst leaving the "old" lower bound intact ?
There may be easier/better ways, but for example this works:
8<------------------------------
insert into test
values(42, '[2021-01-01, 2021-06-03)');
INSERT 0 1
select test_range from test where test_id = '42';
test_range
-----------------------------------------------------
["2021-01-01 00:00:00-05","2021-06-03 00:00:00-04")
(1 row)
update test
set test_range = tstzrange(lower(test_range),
'2021-06-04', '[)')
where test_id = '42';
UPDATE 1
select test_range from test where test_id = '42';
test_range
-----------------------------------------------------
["2021-01-01 00:00:00-05","2021-06-04 00:00:00-04")
(1 row)
8<------------------------------
HTH,
Joe
--
Crunchy Data - http://crunchydata.com
PostgreSQL Support for Secure Enterprises
Consulting, Training, & Open Source Development