Doc: spell out comparison behaviors for the date/time types.

The behavior of cross-type comparisons among date/time data types was
not really explained anywhere.  You could probably infer it if you
recognized the applicability of comments elsewhere about datatype
conversions, but it seems worthy of explicit documentation.

Per bug #16797 from Dana Burd.

Discussion: https://postgr.es/m/16797-f264b0b980b53b8b@postgresql.org
This commit is contained in:
Tom Lane 2020-12-30 17:48:43 -05:00
parent d46eb10c06
commit 7fe23c8bb5
1 changed files with 15 additions and 0 deletions

View File

@ -6459,6 +6459,21 @@ SELECT regexp_matches('abc01234xyz', '(?:(.*?)(\d+)(.*)){1,1}');
linkend="datatype-datetime">.
</para>
<para>
In addition, the usual comparison operators shown in
<xref linkend="functions-comparison-table"> are available for the
date/time types. Dates and timestamps (with or without time zone) are
all comparable, while times (with or without time zone) and intervals
can only be compared to other values of the same data type. When
comparing a timestamp without time zone to a timestamp with time zone,
the former value is assumed to be given in the time zone specified by
the <xref linkend="guc-timezone"> configuration parameter, and is
rotated to UTC for comparison to the latter value (which is already
in UTC internally). Similarly, a date value is assumed to represent
midnight in the <varname>TimeZone</varname> zone when comparing it
to a timestamp.
</para>
<para>
All the functions and operators described below that take <type>time</type> or <type>timestamp</type>
inputs actually come in two variants: one that takes <type>time with time zone</type> or <type>timestamp