pg_when
Overview
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 1120 | pg_when | No | Yes | No | Yes | No | No | - |
| Related | pg_cron pgcalendar pg_rrule cron_utils pgagent pg_task pg_dbms_job pg_duration pg_bikram_sambat pg_dispatch |
|---|
Upstream 0.1.10 supports PostgreSQL 13-18 and pins pgrx 0.18.1; PIGSTY packages PostgreSQL 14-18 with a locked pgrx 0.19.1 compatibility update.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.1.10 | 1817161514 | pg_when | - |
| RPM | PIGSTY | 0.1.10 | 1817161514 | pg_when_$v | - |
| DEB | PIGSTY | 0.1.10 | 1817161514 | postgresql-$v-pg-when | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 0.1.10 el8.x86_64.pg18 : pg_when_18 pg_when_18-0.1.10-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.1.10 el8.x86_64.pg17 : pg_when_17 pg_when_17-0.1.10-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.1.10 el8.x86_64.pg16 : pg_when_16 pg_when_16-0.1.10-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.1.10 el8.x86_64.pg15 : pg_when_15 pg_when_15-0.1.10-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.1.10 el8.x86_64.pg14 : pg_when_14 pg_when_14-0.1.10-1PGSTY.el8.x86_64.rpm
|
| el8.aarch64 | PIGSTY 0.1.10 el8.aarch64.pg18 : pg_when_18 pg_when_18-0.1.10-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.1.10 el8.aarch64.pg17 : pg_when_17 pg_when_17-0.1.10-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.1.10 el8.aarch64.pg16 : pg_when_16 pg_when_16-0.1.10-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.1.10 el8.aarch64.pg15 : pg_when_15 pg_when_15-0.1.10-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.1.10 el8.aarch64.pg14 : pg_when_14 pg_when_14-0.1.10-1PGSTY.el8.aarch64.rpm
|
| el9.x86_64 | PIGSTY 0.1.10 el9.x86_64.pg18 : pg_when_18 pg_when_18-0.1.10-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.1.10 el9.x86_64.pg17 : pg_when_17 pg_when_17-0.1.10-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.1.10 el9.x86_64.pg16 : pg_when_16 pg_when_16-0.1.10-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.1.10 el9.x86_64.pg15 : pg_when_15 pg_when_15-0.1.10-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.1.10 el9.x86_64.pg14 : pg_when_14 pg_when_14-0.1.10-1PGSTY.el9.x86_64.rpm
|
| el9.aarch64 | PIGSTY 0.1.10 el9.aarch64.pg18 : pg_when_18 pg_when_18-0.1.10-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.1.10 el9.aarch64.pg17 : pg_when_17 pg_when_17-0.1.10-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.1.10 el9.aarch64.pg16 : pg_when_16 pg_when_16-0.1.10-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.1.10 el9.aarch64.pg15 : pg_when_15 pg_when_15-0.1.10-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.1.10 el9.aarch64.pg14 : pg_when_14 pg_when_14-0.1.10-1PGSTY.el9.aarch64.rpm
|
| el10.x86_64 | PIGSTY 0.1.10 el10.x86_64.pg18 : pg_when_18 pg_when_18-0.1.10-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.1.10 el10.x86_64.pg17 : pg_when_17 pg_when_17-0.1.10-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.1.10 el10.x86_64.pg16 : pg_when_16 pg_when_16-0.1.10-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.1.10 el10.x86_64.pg15 : pg_when_15 pg_when_15-0.1.10-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.1.10 el10.x86_64.pg14 : pg_when_14 pg_when_14-0.1.10-1PGSTY.el10.x86_64.rpm
|
| el10.aarch64 | PIGSTY 0.1.10 el10.aarch64.pg18 : pg_when_18 pg_when_18-0.1.10-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.1.10 el10.aarch64.pg17 : pg_when_17 pg_when_17-0.1.10-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.1.10 el10.aarch64.pg16 : pg_when_16 pg_when_16-0.1.10-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.1.10 el10.aarch64.pg15 : pg_when_15 pg_when_15-0.1.10-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.1.10 el10.aarch64.pg14 : pg_when_14 pg_when_14-0.1.10-1PGSTY.el10.aarch64.rpm
|
| d12.x86_64 | PIGSTY 0.1.10 d12.x86_64.pg18 : postgresql-18-pg-when postgresql-18-pg-when_0.1.10-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.1.10 d12.x86_64.pg17 : postgresql-17-pg-when postgresql-17-pg-when_0.1.10-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.1.10 d12.x86_64.pg16 : postgresql-16-pg-when postgresql-16-pg-when_0.1.10-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.1.10 d12.x86_64.pg15 : postgresql-15-pg-when postgresql-15-pg-when_0.1.10-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.1.10 d12.x86_64.pg14 : postgresql-14-pg-when postgresql-14-pg-when_0.1.10-1PGSTY~bookworm_amd64.deb
|
| d12.aarch64 | PIGSTY 0.1.10 d12.aarch64.pg18 : postgresql-18-pg-when postgresql-18-pg-when_0.1.10-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.1.10 d12.aarch64.pg17 : postgresql-17-pg-when postgresql-17-pg-when_0.1.10-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.1.10 d12.aarch64.pg16 : postgresql-16-pg-when postgresql-16-pg-when_0.1.10-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.1.10 d12.aarch64.pg15 : postgresql-15-pg-when postgresql-15-pg-when_0.1.10-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.1.10 d12.aarch64.pg14 : postgresql-14-pg-when postgresql-14-pg-when_0.1.10-1PGSTY~bookworm_arm64.deb
|
| d13.x86_64 | PIGSTY 0.1.10 d13.x86_64.pg18 : postgresql-18-pg-when postgresql-18-pg-when_0.1.10-1PGSTY~trixie_amd64.deb
| PIGSTY 0.1.10 d13.x86_64.pg17 : postgresql-17-pg-when postgresql-17-pg-when_0.1.10-1PGSTY~trixie_amd64.deb
| PIGSTY 0.1.10 d13.x86_64.pg16 : postgresql-16-pg-when postgresql-16-pg-when_0.1.10-1PGSTY~trixie_amd64.deb
| PIGSTY 0.1.10 d13.x86_64.pg15 : postgresql-15-pg-when postgresql-15-pg-when_0.1.10-1PGSTY~trixie_amd64.deb
| PIGSTY 0.1.10 d13.x86_64.pg14 : postgresql-14-pg-when postgresql-14-pg-when_0.1.10-1PGSTY~trixie_amd64.deb
|
| d13.aarch64 | PIGSTY 0.1.10 d13.aarch64.pg18 : postgresql-18-pg-when postgresql-18-pg-when_0.1.10-1PGSTY~trixie_arm64.deb
| PIGSTY 0.1.10 d13.aarch64.pg17 : postgresql-17-pg-when postgresql-17-pg-when_0.1.10-1PGSTY~trixie_arm64.deb
| PIGSTY 0.1.10 d13.aarch64.pg16 : postgresql-16-pg-when postgresql-16-pg-when_0.1.10-1PGSTY~trixie_arm64.deb
| PIGSTY 0.1.10 d13.aarch64.pg15 : postgresql-15-pg-when postgresql-15-pg-when_0.1.10-1PGSTY~trixie_arm64.deb
| PIGSTY 0.1.10 d13.aarch64.pg14 : postgresql-14-pg-when postgresql-14-pg-when_0.1.10-1PGSTY~trixie_arm64.deb
|
| u22.x86_64 | PIGSTY 0.1.10 u22.x86_64.pg18 : postgresql-18-pg-when postgresql-18-pg-when_0.1.10-1PGSTY~jammy_amd64.deb
| PIGSTY 0.1.10 u22.x86_64.pg17 : postgresql-17-pg-when postgresql-17-pg-when_0.1.10-1PGSTY~jammy_amd64.deb
| PIGSTY 0.1.10 u22.x86_64.pg16 : postgresql-16-pg-when postgresql-16-pg-when_0.1.10-1PGSTY~jammy_amd64.deb
| PIGSTY 0.1.10 u22.x86_64.pg15 : postgresql-15-pg-when postgresql-15-pg-when_0.1.10-1PGSTY~jammy_amd64.deb
| PIGSTY 0.1.10 u22.x86_64.pg14 : postgresql-14-pg-when postgresql-14-pg-when_0.1.10-1PGSTY~jammy_amd64.deb
|
| u22.aarch64 | PIGSTY 0.1.10 u22.aarch64.pg18 : postgresql-18-pg-when postgresql-18-pg-when_0.1.10-1PGSTY~jammy_arm64.deb
| PIGSTY 0.1.10 u22.aarch64.pg17 : postgresql-17-pg-when postgresql-17-pg-when_0.1.10-1PGSTY~jammy_arm64.deb
| PIGSTY 0.1.10 u22.aarch64.pg16 : postgresql-16-pg-when postgresql-16-pg-when_0.1.10-1PGSTY~jammy_arm64.deb
| PIGSTY 0.1.10 u22.aarch64.pg15 : postgresql-15-pg-when postgresql-15-pg-when_0.1.10-1PGSTY~jammy_arm64.deb
| PIGSTY 0.1.10 u22.aarch64.pg14 : postgresql-14-pg-when postgresql-14-pg-when_0.1.10-1PGSTY~jammy_arm64.deb
|
| u24.x86_64 | PIGSTY 0.1.10 u24.x86_64.pg18 : postgresql-18-pg-when postgresql-18-pg-when_0.1.10-1PGSTY~noble_amd64.deb
| PIGSTY 0.1.10 u24.x86_64.pg17 : postgresql-17-pg-when postgresql-17-pg-when_0.1.10-1PGSTY~noble_amd64.deb
| PIGSTY 0.1.10 u24.x86_64.pg16 : postgresql-16-pg-when postgresql-16-pg-when_0.1.10-1PGSTY~noble_amd64.deb
| PIGSTY 0.1.10 u24.x86_64.pg15 : postgresql-15-pg-when postgresql-15-pg-when_0.1.10-1PGSTY~noble_amd64.deb
| PIGSTY 0.1.10 u24.x86_64.pg14 : postgresql-14-pg-when postgresql-14-pg-when_0.1.10-1PGSTY~noble_amd64.deb
|
| u24.aarch64 | PIGSTY 0.1.10 u24.aarch64.pg18 : postgresql-18-pg-when postgresql-18-pg-when_0.1.10-1PGSTY~noble_arm64.deb
| PIGSTY 0.1.10 u24.aarch64.pg17 : postgresql-17-pg-when postgresql-17-pg-when_0.1.10-1PGSTY~noble_arm64.deb
| PIGSTY 0.1.10 u24.aarch64.pg16 : postgresql-16-pg-when postgresql-16-pg-when_0.1.10-1PGSTY~noble_arm64.deb
| PIGSTY 0.1.10 u24.aarch64.pg15 : postgresql-15-pg-when postgresql-15-pg-when_0.1.10-1PGSTY~noble_arm64.deb
| PIGSTY 0.1.10 u24.aarch64.pg14 : postgresql-14-pg-when postgresql-14-pg-when_0.1.10-1PGSTY~noble_arm64.deb
|
| u26.x86_64 | PIGSTY 0.1.10 u26.x86_64.pg18 : postgresql-18-pg-when postgresql-18-pg-when_0.1.10-1PGSTY~resolute_amd64.deb
| PIGSTY 0.1.10 u26.x86_64.pg17 : postgresql-17-pg-when postgresql-17-pg-when_0.1.10-1PGSTY~resolute_amd64.deb
| PIGSTY 0.1.10 u26.x86_64.pg16 : postgresql-16-pg-when postgresql-16-pg-when_0.1.10-1PGSTY~resolute_amd64.deb
| PIGSTY 0.1.10 u26.x86_64.pg15 : postgresql-15-pg-when postgresql-15-pg-when_0.1.10-1PGSTY~resolute_amd64.deb
| PIGSTY 0.1.10 u26.x86_64.pg14 : postgresql-14-pg-when postgresql-14-pg-when_0.1.10-1PGSTY~resolute_amd64.deb
|
| u26.aarch64 | PIGSTY 0.1.10 u26.aarch64.pg18 : postgresql-18-pg-when postgresql-18-pg-when_0.1.10-1PGSTY~resolute_arm64.deb
| PIGSTY 0.1.10 u26.aarch64.pg17 : postgresql-17-pg-when postgresql-17-pg-when_0.1.10-1PGSTY~resolute_arm64.deb
| PIGSTY 0.1.10 u26.aarch64.pg16 : postgresql-16-pg-when postgresql-16-pg-when_0.1.10-1PGSTY~resolute_arm64.deb
| PIGSTY 0.1.10 u26.aarch64.pg15 : postgresql-15-pg-when postgresql-15-pg-when_0.1.10-1PGSTY~resolute_arm64.deb
| PIGSTY 0.1.10 u26.aarch64.pg14 : postgresql-14-pg-when postgresql-14-pg-when_0.1.10-1PGSTY~resolute_arm64.deb
|
Build
You can build the RPM / DEB packages for pg_when using pig build:
Install
You can install pg_when directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Create Extension:
Usage
Sources:
- pg_when 0.1.10 on PGXN
- pg_when 0.1.10 README
- pg_when 0.1.10 Cargo manifest
- pg_when 0.1.10 control file
- pg_when 0.1.10 exported functions
- pg_when 0.1.10 relative-date implementation
pg_when 0.1.10 parses a constrained natural-language date and time expression and returns either a PostgreSQL timestamptz value or a Unix epoch value at a selected precision.
Query Shape
A query can contain a date, a time, and a time zone, joined by at and in:
If the time zone is omitted, the parser uses UTC. Supported inputs include relative dates such as tomorrow, last month, and 5 days ago; exact dates in common numeric and month-name forms; relative times such as noon, midnight, and next hour; clock times; IANA time-zone names; and UTC offsets.
Function Index
when_is(text)returnstimestamptz.seconds_at(text)returns Unix epoch seconds.millis_at(text)returns Unix epoch milliseconds.micros_at(text)returns Unix epoch microseconds.nanos_at(text)returns Unix epoch nanoseconds.
Compatibility and Boundaries
- The parser implements the documented grammar; it is not a general-purpose natural-language interpreter.
- Upstream 0.1.10 declares PostgreSQL 13–18 features and pins pgrx 0.18.1. Pigsty packages cover PostgreSQL 14–18 and apply a locked pgrx 0.19.1 compatibility update.
pg_whenis not relocatable and its control file requires a superuser forCREATE EXTENSION.- Invalid text raises an error. All five functions are
STRICT, so a null input returns null;nanos_at(text)also errors when the epoch nanoseconds cannot fit inbigint. - The 0.1.10 SQL functions are declared
IMMUTABLE, but relative expressions such asnow,tomorrow, and5 days agoread the wall clock. Do not use relative-input calls in expression indexes or generated columns, and do not rely on them being reevaluated in cached plans; only fully specified date, time, and time-zone inputs are time-independent.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)