pg_extra_time

pg_extra_time

pg_extra_time : Some date time functions and operators that,

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
4220
pg_extra_time
pg_extra_time
2.0.0
UTIL
PostgreSQL
SQL
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--s-d-r
No
Yes
No
Yes
yes
no
Relationships
See Also
pgsql_tweaks
periods
temporal_tables
pg_cron
gzip
bzip
zstd
http

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
MIXED
2.0.0
18
17
16
15
14
pg_extra_time-
RPM
PGDG
2.0.0
18
17
16
15
14
pg_extra_time_$v-
DEB
PIGSTY
2.0.0
18
17
16
15
14
postgresql-$v-pg-extra-time-
Linux / PGPG18PG17PG16PG15PG14
el8.x86_64
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
el8.aarch64
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
el9.x86_64
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
el9.aarch64
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
el10.x86_64
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
el10.aarch64
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
PGDG 2.0.0
d12.x86_64
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
d12.aarch64
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
d13.x86_64
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
d13.aarch64
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
u22.x86_64
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
u22.aarch64
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
u24.x86_64
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
u24.aarch64
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PIGSTY 2.0.0
PackageVersionOSORGSIZEFile URL
pg_extra_time_182.0.0el8.x86_64pgdg33.8 KiBpg_extra_time_18-2.0.0-1PGDG.rhel8.noarch.rpm
pg_extra_time_182.0.0el8.aarch64pgdg33.7 KiBpg_extra_time_18-2.0.0-1PGDG.rhel8.noarch.rpm
pg_extra_time_182.0.0el9.x86_64pgdg32.3 KiBpg_extra_time_18-2.0.0-1PGDG.rhel9.noarch.rpm
pg_extra_time_182.0.0el9.aarch64pgdg32.3 KiBpg_extra_time_18-2.0.0-1PGDG.rhel9.noarch.rpm
pg_extra_time_182.0.0el10.x86_64pgdg32.9 KiBpg_extra_time_18-2.0.0-1PGDG.rhel10.noarch.rpm
pg_extra_time_182.0.0el10.aarch64pgdg32.8 KiBpg_extra_time_18-2.0.0-1PGDG.rhel10.noarch.rpm
postgresql-18-pg-extra-time2.0.0d12.x86_64pigsty39.9 KiBpostgresql-18-pg-extra-time_2.0.0-1PIGSTY~bookworm_amd64.deb
postgresql-18-pg-extra-time2.0.0d12.aarch64pigsty39.9 KiBpostgresql-18-pg-extra-time_2.0.0-1PIGSTY~bookworm_arm64.deb
postgresql-18-pg-extra-time2.0.0d13.x86_64pigsty39.9 KiBpostgresql-18-pg-extra-time_2.0.0-1PIGSTY~trixie_amd64.deb
postgresql-18-pg-extra-time2.0.0d13.aarch64pigsty39.9 KiBpostgresql-18-pg-extra-time_2.0.0-1PIGSTY~trixie_arm64.deb
postgresql-18-pg-extra-time2.0.0u22.x86_64pigsty36.4 KiBpostgresql-18-pg-extra-time_2.0.0-1PIGSTY~jammy_amd64.deb
postgresql-18-pg-extra-time2.0.0u22.aarch64pigsty36.4 KiBpostgresql-18-pg-extra-time_2.0.0-1PIGSTY~jammy_arm64.deb
postgresql-18-pg-extra-time2.0.0u24.x86_64pigsty36.2 KiBpostgresql-18-pg-extra-time_2.0.0-1PIGSTY~noble_amd64.deb
postgresql-18-pg-extra-time2.0.0u24.aarch64pigsty36.2 KiBpostgresql-18-pg-extra-time_2.0.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_extra_time_172.0.0el8.x86_64pgdg33.8 KiBpg_extra_time_17-2.0.0-1PGDG.rhel8.noarch.rpm
pg_extra_time_171.1.3el8.x86_64pgdg18.8 KiBpg_extra_time_17-1.1.3-1PGDG.rhel8.noarch.rpm
pg_extra_time_172.0.0el8.aarch64pgdg33.7 KiBpg_extra_time_17-2.0.0-1PGDG.rhel8.noarch.rpm
pg_extra_time_171.1.3el8.aarch64pgdg18.8 KiBpg_extra_time_17-1.1.3-1PGDG.rhel8.noarch.rpm
pg_extra_time_172.0.0el9.x86_64pgdg32.3 KiBpg_extra_time_17-2.0.0-1PGDG.rhel9.noarch.rpm
pg_extra_time_171.1.3el9.x86_64pgdg18.6 KiBpg_extra_time_17-1.1.3-1PGDG.rhel9.noarch.rpm
pg_extra_time_172.0.0el9.aarch64pgdg32.3 KiBpg_extra_time_17-2.0.0-1PGDG.rhel9.noarch.rpm
pg_extra_time_171.1.3el9.aarch64pgdg18.6 KiBpg_extra_time_17-1.1.3-1PGDG.rhel9.noarch.rpm
pg_extra_time_172.0.0el10.x86_64pgdg32.9 KiBpg_extra_time_17-2.0.0-1PGDG.rhel10.noarch.rpm
pg_extra_time_172.0.0el10.aarch64pgdg32.8 KiBpg_extra_time_17-2.0.0-1PGDG.rhel10.noarch.rpm
postgresql-17-pg-extra-time2.0.0d12.x86_64pigsty39.9 KiBpostgresql-17-pg-extra-time_2.0.0-1PIGSTY~bookworm_amd64.deb
postgresql-17-pg-extra-time2.0.0d12.aarch64pigsty39.9 KiBpostgresql-17-pg-extra-time_2.0.0-1PIGSTY~bookworm_arm64.deb
postgresql-17-pg-extra-time2.0.0d13.x86_64pigsty39.9 KiBpostgresql-17-pg-extra-time_2.0.0-1PIGSTY~trixie_amd64.deb
postgresql-17-pg-extra-time2.0.0d13.aarch64pigsty39.9 KiBpostgresql-17-pg-extra-time_2.0.0-1PIGSTY~trixie_arm64.deb
postgresql-17-pg-extra-time2.0.0u22.x86_64pigsty36.4 KiBpostgresql-17-pg-extra-time_2.0.0-1PIGSTY~jammy_amd64.deb
postgresql-17-pg-extra-time2.0.0u22.aarch64pigsty36.4 KiBpostgresql-17-pg-extra-time_2.0.0-1PIGSTY~jammy_arm64.deb
postgresql-17-pg-extra-time2.0.0u24.x86_64pigsty36.2 KiBpostgresql-17-pg-extra-time_2.0.0-1PIGSTY~noble_amd64.deb
postgresql-17-pg-extra-time2.0.0u24.aarch64pigsty36.2 KiBpostgresql-17-pg-extra-time_2.0.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_extra_time_162.0.0el8.x86_64pgdg33.8 KiBpg_extra_time_16-2.0.0-1PGDG.rhel8.noarch.rpm
pg_extra_time_161.1.3el8.x86_64pgdg18.8 KiBpg_extra_time_16-1.1.3-1PGDG.rhel8.noarch.rpm
pg_extra_time_161.1.2el8.x86_64pgdg18.3 KiBpg_extra_time_16-1.1.2-1PGDG.rhel8.noarch.rpm
pg_extra_time_162.0.0el8.aarch64pgdg33.7 KiBpg_extra_time_16-2.0.0-1PGDG.rhel8.noarch.rpm
pg_extra_time_161.1.3el8.aarch64pgdg18.8 KiBpg_extra_time_16-1.1.3-1PGDG.rhel8.noarch.rpm
pg_extra_time_161.1.2el8.aarch64pgdg18.3 KiBpg_extra_time_16-1.1.2-1PGDG.rhel8.noarch.rpm
pg_extra_time_162.0.0el9.x86_64pgdg32.3 KiBpg_extra_time_16-2.0.0-1PGDG.rhel9.noarch.rpm
pg_extra_time_161.1.3el9.x86_64pgdg18.6 KiBpg_extra_time_16-1.1.3-1PGDG.rhel9.noarch.rpm
pg_extra_time_161.1.2el9.x86_64pgdg18.1 KiBpg_extra_time_16-1.1.2-1PGDG.rhel9.noarch.rpm
pg_extra_time_162.0.0el9.aarch64pgdg32.3 KiBpg_extra_time_16-2.0.0-1PGDG.rhel9.noarch.rpm
pg_extra_time_161.1.3el9.aarch64pgdg18.6 KiBpg_extra_time_16-1.1.3-1PGDG.rhel9.noarch.rpm
pg_extra_time_161.1.2el9.aarch64pgdg18.0 KiBpg_extra_time_16-1.1.2-1PGDG.rhel9.noarch.rpm
pg_extra_time_162.0.0el10.x86_64pgdg32.9 KiBpg_extra_time_16-2.0.0-1PGDG.rhel10.noarch.rpm
pg_extra_time_162.0.0el10.aarch64pgdg32.8 KiBpg_extra_time_16-2.0.0-1PGDG.rhel10.noarch.rpm
postgresql-16-pg-extra-time2.0.0d12.x86_64pigsty39.9 KiBpostgresql-16-pg-extra-time_2.0.0-1PIGSTY~bookworm_amd64.deb
postgresql-16-pg-extra-time2.0.0d12.aarch64pigsty39.9 KiBpostgresql-16-pg-extra-time_2.0.0-1PIGSTY~bookworm_arm64.deb
postgresql-16-pg-extra-time2.0.0d13.x86_64pigsty39.9 KiBpostgresql-16-pg-extra-time_2.0.0-1PIGSTY~trixie_amd64.deb
postgresql-16-pg-extra-time2.0.0d13.aarch64pigsty39.9 KiBpostgresql-16-pg-extra-time_2.0.0-1PIGSTY~trixie_arm64.deb
postgresql-16-pg-extra-time2.0.0u22.x86_64pigsty36.4 KiBpostgresql-16-pg-extra-time_2.0.0-1PIGSTY~jammy_amd64.deb
postgresql-16-pg-extra-time2.0.0u22.aarch64pigsty36.4 KiBpostgresql-16-pg-extra-time_2.0.0-1PIGSTY~jammy_arm64.deb
postgresql-16-pg-extra-time2.0.0u24.x86_64pigsty36.2 KiBpostgresql-16-pg-extra-time_2.0.0-1PIGSTY~noble_amd64.deb
postgresql-16-pg-extra-time2.0.0u24.aarch64pigsty36.2 KiBpostgresql-16-pg-extra-time_2.0.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_extra_time_152.0.0el8.x86_64pgdg33.8 KiBpg_extra_time_15-2.0.0-1PGDG.rhel8.noarch.rpm
pg_extra_time_151.1.3el8.x86_64pgdg18.8 KiBpg_extra_time_15-1.1.3-1PGDG.rhel8.noarch.rpm
pg_extra_time_151.1.2el8.x86_64pgdg18.3 KiBpg_extra_time_15-1.1.2-1PGDG.rhel8.noarch.rpm
pg_extra_time_152.0.0el8.aarch64pgdg33.7 KiBpg_extra_time_15-2.0.0-1PGDG.rhel8.noarch.rpm
pg_extra_time_151.1.3el8.aarch64pgdg18.8 KiBpg_extra_time_15-1.1.3-1PGDG.rhel8.noarch.rpm
pg_extra_time_151.1.2el8.aarch64pgdg18.3 KiBpg_extra_time_15-1.1.2-1PGDG.rhel8.noarch.rpm
pg_extra_time_152.0.0el9.x86_64pgdg32.3 KiBpg_extra_time_15-2.0.0-1PGDG.rhel9.noarch.rpm
pg_extra_time_151.1.3el9.x86_64pgdg18.6 KiBpg_extra_time_15-1.1.3-1PGDG.rhel9.noarch.rpm
pg_extra_time_151.1.2el9.x86_64pgdg18.1 KiBpg_extra_time_15-1.1.2-1PGDG.rhel9.noarch.rpm
pg_extra_time_152.0.0el9.aarch64pgdg32.3 KiBpg_extra_time_15-2.0.0-1PGDG.rhel9.noarch.rpm
pg_extra_time_151.1.3el9.aarch64pgdg18.6 KiBpg_extra_time_15-1.1.3-1PGDG.rhel9.noarch.rpm
pg_extra_time_151.1.2el9.aarch64pgdg18.0 KiBpg_extra_time_15-1.1.2-1PGDG.rhel9.noarch.rpm
pg_extra_time_152.0.0el10.x86_64pgdg32.9 KiBpg_extra_time_15-2.0.0-1PGDG.rhel10.noarch.rpm
pg_extra_time_152.0.0el10.aarch64pgdg32.8 KiBpg_extra_time_15-2.0.0-1PGDG.rhel10.noarch.rpm
postgresql-15-pg-extra-time2.0.0d12.x86_64pigsty39.9 KiBpostgresql-15-pg-extra-time_2.0.0-1PIGSTY~bookworm_amd64.deb
postgresql-15-pg-extra-time2.0.0d12.aarch64pigsty39.9 KiBpostgresql-15-pg-extra-time_2.0.0-1PIGSTY~bookworm_arm64.deb
postgresql-15-pg-extra-time2.0.0d13.x86_64pigsty39.9 KiBpostgresql-15-pg-extra-time_2.0.0-1PIGSTY~trixie_amd64.deb
postgresql-15-pg-extra-time2.0.0d13.aarch64pigsty39.9 KiBpostgresql-15-pg-extra-time_2.0.0-1PIGSTY~trixie_arm64.deb
postgresql-15-pg-extra-time2.0.0u22.x86_64pigsty36.4 KiBpostgresql-15-pg-extra-time_2.0.0-1PIGSTY~jammy_amd64.deb
postgresql-15-pg-extra-time2.0.0u22.aarch64pigsty36.4 KiBpostgresql-15-pg-extra-time_2.0.0-1PIGSTY~jammy_arm64.deb
postgresql-15-pg-extra-time2.0.0u24.x86_64pigsty36.2 KiBpostgresql-15-pg-extra-time_2.0.0-1PIGSTY~noble_amd64.deb
postgresql-15-pg-extra-time2.0.0u24.aarch64pigsty36.2 KiBpostgresql-15-pg-extra-time_2.0.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_extra_time_142.0.0el8.x86_64pgdg33.8 KiBpg_extra_time_14-2.0.0-1PGDG.rhel8.noarch.rpm
pg_extra_time_141.1.3el8.x86_64pgdg18.8 KiBpg_extra_time_14-1.1.3-1PGDG.rhel8.noarch.rpm
pg_extra_time_141.1.2el8.x86_64pgdg18.3 KiBpg_extra_time_14-1.1.2-1PGDG.rhel8.noarch.rpm
pg_extra_time_142.0.0el8.aarch64pgdg33.7 KiBpg_extra_time_14-2.0.0-1PGDG.rhel8.noarch.rpm
pg_extra_time_141.1.3el8.aarch64pgdg18.8 KiBpg_extra_time_14-1.1.3-1PGDG.rhel8.noarch.rpm
pg_extra_time_141.1.2el8.aarch64pgdg18.3 KiBpg_extra_time_14-1.1.2-1PGDG.rhel8.noarch.rpm
pg_extra_time_142.0.0el9.x86_64pgdg32.3 KiBpg_extra_time_14-2.0.0-1PGDG.rhel9.noarch.rpm
pg_extra_time_141.1.3el9.x86_64pgdg18.6 KiBpg_extra_time_14-1.1.3-1PGDG.rhel9.noarch.rpm
pg_extra_time_141.1.2el9.x86_64pgdg18.1 KiBpg_extra_time_14-1.1.2-1PGDG.rhel9.noarch.rpm
pg_extra_time_142.0.0el9.aarch64pgdg32.3 KiBpg_extra_time_14-2.0.0-1PGDG.rhel9.noarch.rpm
pg_extra_time_141.1.3el9.aarch64pgdg18.6 KiBpg_extra_time_14-1.1.3-1PGDG.rhel9.noarch.rpm
pg_extra_time_141.1.2el9.aarch64pgdg18.0 KiBpg_extra_time_14-1.1.2-1PGDG.rhel9.noarch.rpm
pg_extra_time_142.0.0el10.x86_64pgdg32.9 KiBpg_extra_time_14-2.0.0-1PGDG.rhel10.noarch.rpm
pg_extra_time_142.0.0el10.aarch64pgdg32.8 KiBpg_extra_time_14-2.0.0-1PGDG.rhel10.noarch.rpm
postgresql-14-pg-extra-time2.0.0d12.x86_64pigsty39.9 KiBpostgresql-14-pg-extra-time_2.0.0-1PIGSTY~bookworm_amd64.deb
postgresql-14-pg-extra-time2.0.0d12.aarch64pigsty39.9 KiBpostgresql-14-pg-extra-time_2.0.0-1PIGSTY~bookworm_arm64.deb
postgresql-14-pg-extra-time2.0.0d13.x86_64pigsty39.9 KiBpostgresql-14-pg-extra-time_2.0.0-1PIGSTY~trixie_amd64.deb
postgresql-14-pg-extra-time2.0.0d13.aarch64pigsty39.9 KiBpostgresql-14-pg-extra-time_2.0.0-1PIGSTY~trixie_arm64.deb
postgresql-14-pg-extra-time2.0.0u22.x86_64pigsty36.4 KiBpostgresql-14-pg-extra-time_2.0.0-1PIGSTY~jammy_amd64.deb
postgresql-14-pg-extra-time2.0.0u22.aarch64pigsty36.4 KiBpostgresql-14-pg-extra-time_2.0.0-1PIGSTY~jammy_arm64.deb
postgresql-14-pg-extra-time2.0.0u24.x86_64pigsty36.2 KiBpostgresql-14-pg-extra-time_2.0.0-1PIGSTY~noble_amd64.deb
postgresql-14-pg-extra-time2.0.0u24.aarch64pigsty36.2 KiBpostgresql-14-pg-extra-time_2.0.0-1PIGSTY~noble_arm64.deb

Source

pig build pkg pg_extra_time;		# build deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install pg_extra_time;		# install via package name, for the active PG version

pig install pg_extra_time -v 18;   # install for PG 18
pig install pg_extra_time -v 17;   # install for PG 17
pig install pg_extra_time -v 16;   # install for PG 16
pig install pg_extra_time -v 15;   # install for PG 15
pig install pg_extra_time -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION pg_extra_time;

Usage

pg_extra_time: Extra date/time functions and operators for PostgreSQL

Convert to Seconds (float)

SELECT to_float('1970-01-01 00:00:00+0'::timestamptz);  -- 0.0
SELECT to_float('1 day 1 sec'::interval);                -- 86401.0
SELECT to_float('[2024-06-06 05:58:00,2024-06-06 06:00:10]'::tstzrange);  -- 130.0

Cast syntax also works:

SELECT '1970-01-01 01:03:01+00'::timestamptz::float;    -- 3181.00
SELECT '1 day 1 sec 200 ms'::interval::float;            -- 86401.2

Convert to Days

SELECT days('[2024-06-06,2024-06-08 06:00]'::tstzrange);  -- 3.25 (fractional days)
SELECT whole_days('[2024-06-06,2024-06-08 18:00]'::tstzrange);  -- 2 (whole days only)
SELECT days('10 days 12 hours'::interval);                -- 10.5
SELECT whole_days('10 days 20 hours'::interval);          -- 10

Extract Interval from Range

SELECT to_interval('[2024-01-01,2024-01-05]'::tstzrange);  -- 4 days

Each Functions (generate series from ranges)

SELECT * FROM each_subperiod('[2024-01-01,2024-01-05]'::tstzrange, '1 day'::interval);

Operators

-- Range duration as float (seconds)
SELECT '[epoch,1970-01-01T01:03:01+00]'::tstzrange::float;
-- Interval as float (seconds)
SELECT '10 seconds 100 milliseconds'::interval::float;  -- 10.100
Last updated on