| From: | Sushrut Shivaswamy <sushrut(dot)shivaswamy(at)gmail(dot)com> |
|---|---|
| To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Reading timestamp values from Datums gives garbage values |
| Date: | 2024-05-20 14:37:13 |
| Message-ID: | CAH5mb99QvpQsbR0CbF=9gObbU-C8D2-8TYWKUw389Q2J3qLiqA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hey,
I'm trying to read a timestamp column as EPOCH.
My query is as follows.
```
SELECT EXTRACT(EPOCH FROM timestamp_column) FROM table;
column
----------
1716213097.86486
```
When running in the console this query gives valid epoch output which
appears to be of type double.
When trying to read the query response from the Datum, I get garbage values.
I've tried various types and none of them read the correct value.
```
Datum current_timestamp = SPI_getbinval(SPI_tuptable->vals[i],
SPI_tuptable->tupdesc, 5, &isnull);
double current_time = DatumGetFloat8(current_timestamp); // prints 0
int64 time = DatumGetUint64(current_timestamp); // prints 5293917674
```
Can you help me out with the correct way to read EPOCH values from datums?
Thanks,
Sushrut
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robert Haas | 2024-05-20 15:12:34 | Re: Shared detoast Datum proposal |
| Previous Message | Robert Haas | 2024-05-20 14:18:57 | Re: commitfest.postgresql.org is no longer fit for purpose |