On Mon, Dec 12, 2016 at 8:50 AM, Aleksander Alekseev
<a.alekseev@postgrespro.ru> wrote:
> I suggest to rewrite the documentation a bit to make it more clear that
> by default timestamp is stored in microseconds. Corresponding patch is
> attached.
I find this a bit unclear, because the revised text kind of jumps back
and forth between the floating-point and integer formats. Perhaps
something like this:
When <type>timestamp</> values are stored as eight-byte integers (currently the default), microsecond precision is
availableover the full range of values. In this case, the internal representation is the number of microseconds
beforeor after midnight 2000-01-01. When <type>timestamp</> values are stored as double precision floating-point
numbersinstead (a deprecated compile-time option), the internal representation is the number of seconds before or
aftermidnight 2000-01-01. With this representation, the effective limit of precision might be less than 6; in
practice, microsecond precision is achieved for dates within a few years of 2000-01-01, but the precision degrades
fordates further away. Note that using floating-point datetimes allows a larger range of <type>timestamp</type>
valuesto be represented than shown above: from 4713 BC up to 5874897 AD.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company