| From: | Michael Arnold <myk321(at)gmail(dot)com> |
|---|---|
| To: | pgsql-general(at)lists(dot)postgresql(dot)org |
| Subject: | Postgres Date Type Value |
| Date: | 2022-12-17 23:55:16 |
| Message-ID: | CAMOVWRiUuVQ6hHqAFSmnto3JQ2LRCu6jGmSYL_jvN7FXic=jbg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Want to retrieve a date type from a postgres table using libpq
PQexecParams() in binary mode (please humor me).
https://www.postgresql.org/docs/14/datatype-datetime.html says that a date
is 4 bytes (4713 BC to 5874897 AD). src/include/utils/date.h defines:
typedef int32 DateADT;
Something like this:
int32_t date_val = be32toh(*((uint32_t *) PQgetvalue(res, 0, 17)));
Gives date_val=1,466,004,328 for 2022-10-25.
Since 4713BC is the start of the Julian calendar thought it might be a
simple day count but the value is too large (2,459,878 days from 1 Jan
4713BC to 2022-10-25). So clearly not a day count. My simple maths gives
me 585.966... ticks per day.
How do I interpret the 4 bytes of postgresql 'date' value?
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2022-12-18 00:20:50 | Re: Postgres Date Type Value |
| Previous Message | Dan Langille | 2022-12-17 20:33:33 | Re: tsvector not giving expected results on one host |