Re: Type to to_char(d, 'J')? - Mailing list pgsql-general

From Bruce Momjian
Subject Re: Type to to_char(d, 'J')?
Date
Msg-id 20130809232642.GC30558@momjian.us
Whole thread Raw
In response to Type to to_char(d, 'J')?  (Marc Dahn <dahn@tfiu.de>)
List pgsql-general
On Wed, Jul 31, 2013 at 11:09:22AM +0200, Marc Dahn wrote:
> Dear list,
>
> Section 9.8 of the postgres (9.1) documentation says, on the
> patterns for to_char(timestamp, pattern),:
>
> J    Julian Day (days since November 24, 4714 BC at midnight)
>
> This leaves open the question of what's actually returned.  At least
> in astronomy, it is customary to have fractional days in JDs, whereas
> postgres appears to always return an integer.  Is that guaranteed
> behaviour?
>
> The reason I'm asking is that I'd like to use the expression
>
> to_char($1, 'J')::double precision
>   + to_char($1,'ssss')::double_precision/86400
>   - 2400001
>
> to compute the modified julian date (MJD) from a postgres timestamp
> in some software that may be around for longer.  If postgres at some
> point decided to return fractional days, that would blow up.
>
>
> If integers are guaranteed, might I suggest to change the
> documentation to read
>
>
>   J    Chronological Julian Day (integer number of days since November 24,
>     4714 BC at midnight)

Done and backpatched to 9.3.  I went with a simpler:

    Julian Day (integer days since November 24, 4714 BC at midnight)


--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +


pgsql-general by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Snapshot backups
Next
From: gilroy
Date:
Subject: Re: Dump file created with pg_dump cannot be restored with psql