Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Doc: spell out comparison behaviors for the date/time types.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 30 Dec 2020 22:48:43 +0000 (17:48 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 30 Dec 2020 22:48:43 +0000 (17:48 -0500)
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

doc/src/sgml/func.sgml

index 20626b2a13bb5cc07dd70424330948b452a79f01..319ca1a75b05e2885d4c88db0b40ad27ec7c81ea 100644 (file)
@@ -6776,6 +6776,21 @@ SELECT regexp_match('abc01234xyz', '(?:(.*?)(\d+)(.*)){1,1}');
    linkend="datatype-datetime">.
   </para>
 
+  <para>
+   In addition, the usual comparison operators shown in
+   <xref linkend="functions-comparison-op-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