Home Explore Blog CI



postgresql

12th chunk of `doc/src/sgml/datetime.sgml`
7d3c4ece65c3baae138fba1f90c4802cd6c140de20f6ae4e0000000100000d49
 <userinput>cal 9 1752</userinput>
   September 1752
 S  M Tu  W Th  F  S
       1  2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
</screen>

   But, of course, this calendar is only valid for Great Britain and
   dominions, not other places.
   Since it would be difficult and confusing to try to track the actual
   calendars that were in use in various places at various times,
   <productname>PostgreSQL</productname> does not try, but rather follows the Gregorian
   calendar rules for all dates, even though this method is not historically
   accurate.
  </para>

  <para>
   Different calendars have been developed in various parts of the
   world, many predating the Gregorian system.

   For example,
   the beginnings of the Chinese calendar can be traced back to the 14th
   century BC. Legend has it that the Emperor Huangdi invented that
   calendar in 2637 BC.

   The People's Republic of China uses the Gregorian calendar
   for civil purposes. The Chinese calendar is used for determining
   festivals.
  </para>

  </sect1>

  <sect1 id="datetime-julian-dates">
  <title>Julian Dates</title>

  <indexterm zone="datetime-julian-dates">
   <primary>Julian date</primary>
  </indexterm>

  <para>
   The <firstterm>Julian Date</firstterm> system is a method for
   numbering days.  It is
   unrelated to the Julian calendar, though it is confusingly
   named similarly to that calendar.
   The Julian Date system was invented by the French scholar
   Joseph Justus Scaliger (1540&ndash;1609)
   and probably takes its name from Scaliger's father,
   the Italian scholar Julius Caesar Scaliger (1484&ndash;1558).
  </para>

  <para>
   In the Julian Date system, each day has a sequential number, starting
   from JD 0 (which is sometimes called <emphasis>the</emphasis> Julian Date).
   JD 0 corresponds to 1 January 4713 BC in the Julian calendar, or
   24 November 4714 BC in the Gregorian calendar.  Julian Date counting
   is most often used by astronomers for labeling their nightly observations,
   and therefore a date runs from noon UTC to the next noon UTC, rather than
   from midnight to midnight: JD 0 designates the 24 hours from noon UTC on
   24 November 4714 BC to noon UTC on 25 November 4714 BC.
  </para>

  <para>
   Although <productname>PostgreSQL</productname> supports Julian Date notation for
   input and output of dates (and also uses Julian dates for some internal
   datetime calculations), it does not observe the nicety of having dates
   run from noon to noon.  <productname>PostgreSQL</productname> treats a Julian Date
   as running from local midnight to local midnight, the same as a normal
   date.
  </para>

  <para>
   This definition does, however, provide a way to obtain the astronomical
   definition when you need it: do the arithmetic in time
   zone <literal>UTC+12</literal>.  For example,
<programlisting>
=&gt; SELECT extract(julian from '2021-06-23 7:00:00-04'::timestamptz at time zone 'UTC+12');
           extract
------------------------------
 2459388.95833333333333333333
(1 row)
=&gt; SELECT extract(julian from '2021-06-23 8:00:00-04'::timestamptz at time zone 'UTC+12');
               extract
--------------------------------------
 2459389.0000000000000000000000000000
(1 row)
=&gt; SELECT extract(julian from date '2021-06-23');
 extract
---------
 2459389
(1 row)
</programlisting>
  </para>

 </sect1>
</appendix>

Title: Julian Dates and Calendar Systems
Summary
The text explains the concept of Julian Dates, a system for numbering days, and its difference from the Julian calendar, as well as its usage in astronomy and support in PostgreSQL, including how to obtain the astronomical definition of Julian Dates, and also touches on the history and usage of different calendar systems, such as the Chinese calendar and the Gregorian calendar.