]> begriffs open source - ai-pg/blob - full-docs/src/sgml/html/datetime-units-history.html
WIP: toc builder
[ai-pg] / full-docs / src / sgml / html / datetime-units-history.html
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>B.6. History of Units</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="datetime-posix-timezone-specs.html" title="B.5. POSIX Time Zone Specifications" /><link rel="next" href="datetime-julian-dates.html" title="B.7. Julian Dates" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">B.6. History of Units</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="datetime-posix-timezone-specs.html" title="B.5. POSIX Time Zone Specifications">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="datetime-appendix.html" title="Appendix B. Date/Time Support">Up</a></td><th width="60%" align="center">Appendix B. Date/Time Support</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="datetime-julian-dates.html" title="B.7. Julian Dates">Next</a></td></tr></table><hr /></div><div class="sect1" id="DATETIME-UNITS-HISTORY"><div class="titlepage"><div><div><h2 class="title" style="clear: both">B.6. History of Units <a href="#DATETIME-UNITS-HISTORY" class="id_link">#</a></h2></div></div></div><a id="id-1.11.3.9.2" class="indexterm"></a><p>
3    The SQL standard states that <span class="quote">“<span class="quote">Within the definition of a
4    <span class="quote">‘<span class="quote">datetime literal</span>’</span>, the <span class="quote">‘<span class="quote">datetime
5    values</span>’</span> are constrained by the natural rules for dates and
6    times according to the Gregorian calendar</span>”</span>.
7    <span class="productname">PostgreSQL</span> follows the SQL
8    standard's lead by counting dates exclusively in the Gregorian
9    calendar, even for years before that calendar was in use.
10    This rule is known as the <em class="firstterm">proleptic Gregorian calendar</em>.
11   </p><p>
12    The Julian calendar was introduced by Julius Caesar in 45 BC.
13    It was in common use in the Western world
14    until the year 1582, when countries started changing to the Gregorian
15    calendar.  In the Julian calendar, the tropical year is
16    approximated as 365 1/4 days = 365.25 days. This gives an error of
17    about 1 day in 128 years.
18   </p><p>
19    The accumulating calendar error prompted
20    Pope Gregory XIII to reform the calendar in accordance with
21    instructions from the Council of Trent.
22    In the Gregorian calendar, the tropical year is approximated as
23    365 + 97 / 400 days = 365.2425 days. Thus it takes approximately 3300
24    years for the tropical year to shift one day with respect to the
25    Gregorian calendar.
26   </p><p>
27    The approximation 365+97/400 is achieved by having 97 leap years
28    every 400 years, using the following rules:
29
30    </p><table border="0" summary="Simple list" class="simplelist"><tr><td>
31      Every year divisible by 4 is a leap year.
32     </td></tr><tr><td>
33      However, every year divisible by 100 is not a leap year.
34     </td></tr><tr><td>
35      However, every year divisible by 400 is a leap year after all.
36     </td></tr></table><p>
37
38    So, 1700, 1800, 1900, 2100, and 2200 are not leap years. But 1600,
39    2000, and 2400 are leap years.
40
41    By contrast, in the older Julian calendar all years divisible by 4 are leap
42    years.
43   </p><p>
44    The papal bull of February 1582 decreed that 10 days should be dropped
45    from October 1582 so that 15 October should follow immediately after
46    4 October.
47    This was observed in Italy, Poland, Portugal, and Spain. Other Catholic
48    countries followed shortly after, but Protestant countries were
49    reluctant to change, and the Greek Orthodox countries didn't change
50    until the start of the 20th century.
51
52    The reform was observed by Great Britain and its dominions (including what
53    is now the USA) in 1752.
54    Thus 2 September 1752 was followed by 14 September 1752.
55
56    This is why Unix systems that have the <code class="command">cal</code> program
57    produce the following:
58
59 </p><pre class="screen">
60 $ <strong class="userinput"><code>cal 9 1752</code></strong>
61    September 1752
62  S  M Tu  W Th  F  S
63        1  2 14 15 16
64 17 18 19 20 21 22 23
65 24 25 26 27 28 29 30
66 </pre><p>
67
68    But, of course, this calendar is only valid for Great Britain and
69    dominions, not other places.
70    Since it would be difficult and confusing to try to track the actual
71    calendars that were in use in various places at various times,
72    <span class="productname">PostgreSQL</span> does not try, but rather follows the Gregorian
73    calendar rules for all dates, even though this method is not historically
74    accurate.
75   </p><p>
76    Different calendars have been developed in various parts of the
77    world, many predating the Gregorian system.
78
79    For example,
80    the beginnings of the Chinese calendar can be traced back to the 14th
81    century BC. Legend has it that the Emperor Huangdi invented that
82    calendar in 2637 BC.
83
84    The People's Republic of China uses the Gregorian calendar
85    for civil purposes. The Chinese calendar is used for determining
86    festivals.
87   </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="datetime-posix-timezone-specs.html" title="B.5. POSIX Time Zone Specifications">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="datetime-appendix.html" title="Appendix B. Date/Time Support">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="datetime-julian-dates.html" title="B.7. Julian Dates">Next</a></td></tr><tr><td width="40%" align="left" valign="top">B.5. <acronym class="acronym">POSIX</acronym> Time Zone Specifications </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="40%" align="right" valign="top"> B.7. Julian Dates</td></tr></table></div></body></html>