pg_when

pg_when

pg_when : Natural language time parsing for PostgreSQL

Overview

ID Extension Package Version Category License Language
1120
pg_when
pg_when
0.1.9
TIME
MIT
Rust
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--s-d--
No
Yes
No
Yes
no
no

manually upgraded PGRX from 0.15.0 to 0.17.0 by Vonng

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
PIGSTY
0.1.9
18
17
16
15
14
pg_when -
RPM
PIGSTY
0.1.9
18
17
16
15
14
pg_when_$v -
DEB
PIGSTY
0.1.9
18
17
16
15
14
postgresql-$v-pg-when -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
el8.aarch64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
el9.x86_64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
el9.aarch64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
el10.x86_64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
el10.aarch64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
d12.x86_64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
d12.aarch64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
d13.x86_64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
d13.aarch64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
u22.x86_64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
u22.aarch64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
u24.x86_64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
u24.aarch64
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
PIGSTY 0.1.9
Package Version OS ORG SIZE File URL
pg_when_18 0.1.9 el8.x86_64 pigsty 439.5 KiB pg_when_18-0.1.9-1PIGSTY.el8.x86_64.rpm
pg_when_18 0.1.9 el8.aarch64 pigsty 328.5 KiB pg_when_18-0.1.9-1PIGSTY.el8.aarch64.rpm
pg_when_18 0.1.9 el9.x86_64 pigsty 456.1 KiB pg_when_18-0.1.9-1PIGSTY.el9.x86_64.rpm
pg_when_18 0.1.9 el9.aarch64 pigsty 347.9 KiB pg_when_18-0.1.9-1PIGSTY.el9.aarch64.rpm
pg_when_18 0.1.9 el10.x86_64 pigsty 456.2 KiB pg_when_18-0.1.9-1PIGSTY.el10.x86_64.rpm
pg_when_18 0.1.9 el10.aarch64 pigsty 347.6 KiB pg_when_18-0.1.9-1PIGSTY.el10.aarch64.rpm
postgresql-18-pg-when 0.1.9 d12.x86_64 pigsty 364.2 KiB postgresql-18-pg-when_0.1.9-1PIGSTY~bookworm_amd64.deb
postgresql-18-pg-when 0.1.9 d12.aarch64 pigsty 259.7 KiB postgresql-18-pg-when_0.1.9-1PIGSTY~bookworm_arm64.deb
postgresql-18-pg-when 0.1.9 d13.x86_64 pigsty 364.2 KiB postgresql-18-pg-when_0.1.9-1PIGSTY~trixie_amd64.deb
postgresql-18-pg-when 0.1.9 d13.aarch64 pigsty 259.6 KiB postgresql-18-pg-when_0.1.9-1PIGSTY~trixie_arm64.deb
postgresql-18-pg-when 0.1.9 u22.x86_64 pigsty 406.7 KiB postgresql-18-pg-when_0.1.9-1PIGSTY~jammy_amd64.deb
postgresql-18-pg-when 0.1.9 u22.aarch64 pigsty 298.4 KiB postgresql-18-pg-when_0.1.9-1PIGSTY~jammy_arm64.deb
postgresql-18-pg-when 0.1.9 u24.x86_64 pigsty 403.4 KiB postgresql-18-pg-when_0.1.9-1PIGSTY~noble_amd64.deb
postgresql-18-pg-when 0.1.9 u24.aarch64 pigsty 296.1 KiB postgresql-18-pg-when_0.1.9-1PIGSTY~noble_arm64.deb
Package Version OS ORG SIZE File URL
pg_when_17 0.1.9 el8.x86_64 pigsty 439.7 KiB pg_when_17-0.1.9-1PIGSTY.el8.x86_64.rpm
pg_when_17 0.1.9 el8.aarch64 pigsty 328.5 KiB pg_when_17-0.1.9-1PIGSTY.el8.aarch64.rpm
pg_when_17 0.1.9 el9.x86_64 pigsty 456.1 KiB pg_when_17-0.1.9-1PIGSTY.el9.x86_64.rpm
pg_when_17 0.1.9 el9.aarch64 pigsty 348.0 KiB pg_when_17-0.1.9-1PIGSTY.el9.aarch64.rpm
pg_when_17 0.1.9 el10.x86_64 pigsty 456.3 KiB pg_when_17-0.1.9-1PIGSTY.el10.x86_64.rpm
pg_when_17 0.1.9 el10.aarch64 pigsty 347.5 KiB pg_when_17-0.1.9-1PIGSTY.el10.aarch64.rpm
postgresql-17-pg-when 0.1.9 d12.x86_64 pigsty 364.5 KiB postgresql-17-pg-when_0.1.9-1PIGSTY~bookworm_amd64.deb
postgresql-17-pg-when 0.1.9 d12.aarch64 pigsty 259.7 KiB postgresql-17-pg-when_0.1.9-1PIGSTY~bookworm_arm64.deb
postgresql-17-pg-when 0.1.9 d13.x86_64 pigsty 364.7 KiB postgresql-17-pg-when_0.1.9-1PIGSTY~trixie_amd64.deb
postgresql-17-pg-when 0.1.9 d13.aarch64 pigsty 259.6 KiB postgresql-17-pg-when_0.1.9-1PIGSTY~trixie_arm64.deb
postgresql-17-pg-when 0.1.9 u22.x86_64 pigsty 406.4 KiB postgresql-17-pg-when_0.1.9-1PIGSTY~jammy_amd64.deb
postgresql-17-pg-when 0.1.9 u22.aarch64 pigsty 298.5 KiB postgresql-17-pg-when_0.1.9-1PIGSTY~jammy_arm64.deb
postgresql-17-pg-when 0.1.9 u24.x86_64 pigsty 403.5 KiB postgresql-17-pg-when_0.1.9-1PIGSTY~noble_amd64.deb
postgresql-17-pg-when 0.1.9 u24.aarch64 pigsty 296.1 KiB postgresql-17-pg-when_0.1.9-1PIGSTY~noble_arm64.deb
Package Version OS ORG SIZE File URL
pg_when_16 0.1.9 el8.x86_64 pigsty 439.8 KiB pg_when_16-0.1.9-1PIGSTY.el8.x86_64.rpm
pg_when_16 0.1.9 el8.aarch64 pigsty 328.5 KiB pg_when_16-0.1.9-1PIGSTY.el8.aarch64.rpm
pg_when_16 0.1.9 el9.x86_64 pigsty 456.2 KiB pg_when_16-0.1.9-1PIGSTY.el9.x86_64.rpm
pg_when_16 0.1.9 el9.aarch64 pigsty 348.0 KiB pg_when_16-0.1.9-1PIGSTY.el9.aarch64.rpm
pg_when_16 0.1.9 el10.x86_64 pigsty 456.4 KiB pg_when_16-0.1.9-1PIGSTY.el10.x86_64.rpm
pg_when_16 0.1.9 el10.aarch64 pigsty 347.6 KiB pg_when_16-0.1.9-1PIGSTY.el10.aarch64.rpm
postgresql-16-pg-when 0.1.9 d12.x86_64 pigsty 363.9 KiB postgresql-16-pg-when_0.1.9-1PIGSTY~bookworm_amd64.deb
postgresql-16-pg-when 0.1.9 d12.aarch64 pigsty 259.6 KiB postgresql-16-pg-when_0.1.9-1PIGSTY~bookworm_arm64.deb
postgresql-16-pg-when 0.1.9 d13.x86_64 pigsty 364.0 KiB postgresql-16-pg-when_0.1.9-1PIGSTY~trixie_amd64.deb
postgresql-16-pg-when 0.1.9 d13.aarch64 pigsty 259.6 KiB postgresql-16-pg-when_0.1.9-1PIGSTY~trixie_arm64.deb
postgresql-16-pg-when 0.1.9 u22.x86_64 pigsty 406.5 KiB postgresql-16-pg-when_0.1.9-1PIGSTY~jammy_amd64.deb
postgresql-16-pg-when 0.1.9 u22.aarch64 pigsty 298.4 KiB postgresql-16-pg-when_0.1.9-1PIGSTY~jammy_arm64.deb
postgresql-16-pg-when 0.1.9 u24.x86_64 pigsty 403.2 KiB postgresql-16-pg-when_0.1.9-1PIGSTY~noble_amd64.deb
postgresql-16-pg-when 0.1.9 u24.aarch64 pigsty 296.1 KiB postgresql-16-pg-when_0.1.9-1PIGSTY~noble_arm64.deb
Package Version OS ORG SIZE File URL
pg_when_15 0.1.9 el8.x86_64 pigsty 439.2 KiB pg_when_15-0.1.9-1PIGSTY.el8.x86_64.rpm
pg_when_15 0.1.9 el8.aarch64 pigsty 328.6 KiB pg_when_15-0.1.9-1PIGSTY.el8.aarch64.rpm
pg_when_15 0.1.9 el9.x86_64 pigsty 456.1 KiB pg_when_15-0.1.9-1PIGSTY.el9.x86_64.rpm
pg_when_15 0.1.9 el9.aarch64 pigsty 348.3 KiB pg_when_15-0.1.9-1PIGSTY.el9.aarch64.rpm
pg_when_15 0.1.9 el10.x86_64 pigsty 456.2 KiB pg_when_15-0.1.9-1PIGSTY.el10.x86_64.rpm
pg_when_15 0.1.9 el10.aarch64 pigsty 347.6 KiB pg_when_15-0.1.9-1PIGSTY.el10.aarch64.rpm
postgresql-15-pg-when 0.1.9 d12.x86_64 pigsty 364.1 KiB postgresql-15-pg-when_0.1.9-1PIGSTY~bookworm_amd64.deb
postgresql-15-pg-when 0.1.9 d12.aarch64 pigsty 259.7 KiB postgresql-15-pg-when_0.1.9-1PIGSTY~bookworm_arm64.deb
postgresql-15-pg-when 0.1.9 d13.x86_64 pigsty 363.9 KiB postgresql-15-pg-when_0.1.9-1PIGSTY~trixie_amd64.deb
postgresql-15-pg-when 0.1.9 d13.aarch64 pigsty 259.5 KiB postgresql-15-pg-when_0.1.9-1PIGSTY~trixie_arm64.deb
postgresql-15-pg-when 0.1.9 u22.x86_64 pigsty 406.5 KiB postgresql-15-pg-when_0.1.9-1PIGSTY~jammy_amd64.deb
postgresql-15-pg-when 0.1.9 u22.aarch64 pigsty 298.6 KiB postgresql-15-pg-when_0.1.9-1PIGSTY~jammy_arm64.deb
postgresql-15-pg-when 0.1.9 u24.x86_64 pigsty 403.3 KiB postgresql-15-pg-when_0.1.9-1PIGSTY~noble_amd64.deb
postgresql-15-pg-when 0.1.9 u24.aarch64 pigsty 296.1 KiB postgresql-15-pg-when_0.1.9-1PIGSTY~noble_arm64.deb
Package Version OS ORG SIZE File URL
pg_when_14 0.1.9 el8.x86_64 pigsty 439.3 KiB pg_when_14-0.1.9-1PIGSTY.el8.x86_64.rpm
pg_when_14 0.1.9 el8.aarch64 pigsty 328.5 KiB pg_when_14-0.1.9-1PIGSTY.el8.aarch64.rpm
pg_when_14 0.1.9 el9.x86_64 pigsty 455.7 KiB pg_when_14-0.1.9-1PIGSTY.el9.x86_64.rpm
pg_when_14 0.1.9 el9.aarch64 pigsty 348.0 KiB pg_when_14-0.1.9-1PIGSTY.el9.aarch64.rpm
pg_when_14 0.1.9 el10.x86_64 pigsty 456.0 KiB pg_when_14-0.1.9-1PIGSTY.el10.x86_64.rpm
pg_when_14 0.1.9 el10.aarch64 pigsty 347.6 KiB pg_when_14-0.1.9-1PIGSTY.el10.aarch64.rpm
postgresql-14-pg-when 0.1.9 d12.x86_64 pigsty 364.2 KiB postgresql-14-pg-when_0.1.9-1PIGSTY~bookworm_amd64.deb
postgresql-14-pg-when 0.1.9 d12.aarch64 pigsty 259.6 KiB postgresql-14-pg-when_0.1.9-1PIGSTY~bookworm_arm64.deb
postgresql-14-pg-when 0.1.9 d13.x86_64 pigsty 364.2 KiB postgresql-14-pg-when_0.1.9-1PIGSTY~trixie_amd64.deb
postgresql-14-pg-when 0.1.9 d13.aarch64 pigsty 259.5 KiB postgresql-14-pg-when_0.1.9-1PIGSTY~trixie_arm64.deb
postgresql-14-pg-when 0.1.9 u22.x86_64 pigsty 406.2 KiB postgresql-14-pg-when_0.1.9-1PIGSTY~jammy_amd64.deb
postgresql-14-pg-when 0.1.9 u22.aarch64 pigsty 298.4 KiB postgresql-14-pg-when_0.1.9-1PIGSTY~jammy_arm64.deb
postgresql-14-pg-when 0.1.9 u24.x86_64 pigsty 403.2 KiB postgresql-14-pg-when_0.1.9-1PIGSTY~noble_amd64.deb
postgresql-14-pg-when 0.1.9 u24.aarch64 pigsty 296.1 KiB postgresql-14-pg-when_0.1.9-1PIGSTY~noble_arm64.deb

Source

pig build pkg pg_when;		# build rpm/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_when;		# install via package name, for the active PG version

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

Create this extension with:

CREATE EXTENSION pg_when;

Usage

Sources: README and project repo.

pg-when is a PostgreSQL extension for creating time values from natural-language phrases. It exposes the same parsed expression through multiple return formats: when_is, seconds_at, millis_at, micros_at, and nanos_at.

The query syntax combines up to three parts:

SELECT when_is('<date> at <time> in <timezone>');
SELECT when_is('<date>');
SELECT when_is('<time> in <timezone>');
SELECT when_is('<date> at <time>');

If no timezone is provided, the extension defaults to UTC.

Supported Components

<date> can be relative or exact.

Relative date examples from the README include:

  • today
  • yesterday
  • tomorrow
  • next week
  • last month
  • this friday
  • 5 days ago
  • in 2 years

Exact dates can be written as:

  • YYYY-MM-DD or YYYY/MM/DD
  • DD-MM-YYYY or DD/MM/YYYY
  • Month D, YYYY
  • D Month YYYY

<time> can also be relative or exact.

Relative time examples include:

  • noon
  • midnight
  • morning
  • evening
  • next hour
  • previous minute
  • this hour

Exact times can be written in 12-hour or 24-hour forms such as 8:30 pm or 15:45.

Timezones accept either IANA names or UTC offsets, for example America/New_York or UTC-08:00.

Examples

SELECT when_is('5 days ago at this hour in Asia/Tokyo');
SELECT when_is('next friday at 8:00 pm in America/New_York');
SELECT when_is('in 2 months at midnight in UTC-8');
SELECT when_is('last monday at 22:30');
SELECT when_is('December 31, 2026 at evening');

Deployment

The upstream README shows Docker images for PostgreSQL 13 through 18. That matches the package metadata in this repository.

Last updated on