From: | Dan Harris <fbsd(at)drivefaster(dot)net> |
---|---|
To: | pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Function to offset current timestamp |
Date: | 2007-06-01 18:51:54 |
Message-ID: | 46606ACA.1090708@drivefaster.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Steve Crawford wrote:
> Dan Harris wrote:
>> I'm trying to write a function that can do a select on an integer value
>> from a table and subtract that value from current_timestamp.
>>
>> Let's say I have a table called users and a field called tz_offset..
>>
>> I want my function to do something like :
>>
>> select current_timestamp - '( select tz_offset from users where userid =
>> ? ) hours'::interval
>>
>> Obviously this syntax is incorrect, but I'm not quite sure how to do the
>> subquery and make the integer result of it part of the quoted interval
>> expression.
>>
>> Any tips?
>
>
> You don't need to make it part of the quoted expression - just multiply
> an interval by your integer. Using your version, try something like:
>
> select current_timestamp - '1 hour'::interval * ( select tz_offset from
> users where userid = ? )
>
> But this is actually wrong because the returned time is still in your
> current timezone - just offset by X hours.
Thanks for the extra explanation here. I think I'll be OK because the timezone
offset comes directly from the browser. I grab it via javascript and as long as
their system timezone offset is set correctly, the dates will be displayed
relative to them. I do understand that I will have to do more work if I want to
display their dates to other users in different timezones correctly.
-Dan
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2007-06-01 20:02:19 | Re: Attempt to re-archive existing WAL logs afterrestoringfrom backup |
Previous Message | Steve Crawford | 2007-06-01 18:24:45 | Re: Function to offset current timestamp |