Documentazione di PostgreSQL 9.0 > Appendici > Supporto di data e orario > Storia delle unità
PrecedenteFile di configurazione di data e orarioParole chiave SQLSuccessivo

B.4. Storia delle unità

Il calendario Juliano fu introdotto da Giulio Cesare nel 45 AC. Fu di uso comune nel mondo occidentale fino all'anno 1582, quando i paesi iniziarono a passare al calendario Gregoriano. Nel calendario Juliano, l'anno solare è pari approssimativamente a 365 1/4 di giorni, ovvero 365,25 giorni. Questo provoca un errore di circa un giorno in 128 anni.

L'errore di calendario accumulato richiese a Papa Gregorio XIII di riformare il calendario concordemente alle istruzioni del Concilio di Trento. Nel calendario Gregoriano, l'anno solare è pari approssimativamente a 365 + 97/400 giorni, ovvero a 365,2425 giorni. In questo modo sono necessari circa 3300 anni affinchè l'anno solare si discosti di un giorno rispetto al Calendario Gregoriano.

L'approssimazione 365+97/400 si ottiene con 97 anni bisestili ogni 400 anni, utilizzando le seguenti regole:

Ogni anno divisibile per 4 è un anno bisestile.
Tuttavia, ogni anno divisibile per 100 non è un anno bisestile.
Tuttavia, ogni anno divisibile per 400 è un anno bisestile dopo tutto.

Così, il 1700, 1800, 1900, 2100, e 2200 non sono anni bisestili. Ma il 1600, 2000, e 2400 sono anni bisestili. Al contrario, nel vecchio calendario Juliano, tutti gli anni divisibili per 4 sono anni bisestili.

La bolla papale del febbraio 1582 decretò che 10 giorni sarebbero stati tolti dal mese di ottobre 1582 in modo tale che il 18 ottobre sarebbe venuto immediatamente dopo il 4 ottobre. Questo avvenne in Italia, Polonia, Portogallo e Spagna. Altri paesi Cattolici seguirono subito dopo e i paesi Greco Ortodossi non cambiarono fino all'inizio del ventesimo secolo. La riforma venne osservata dalla Gran Bretagna e relativi dominii (compreso quello che sono oggi gli USA) nel 1752. Cioè, il 2 settembre 1752 fu seguito dal 14 settembre 1752. Questo è il motivo per cui i sistemi Unix posseggono il programma cal che produce quanto segue:

$ cal 9 1752
   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

Lo standard SQL definisce che «Nell'ambito della definizione di “datetime letterale”, i “valori di datetime” sono vincolati alle regole naturali per date e orari in accordo al calendario Gregoriano». Date tra il 5 ottobre 1582 e il 14 ottobre 1582 sono tuttavia eliminate in alcuni paesi per volontà Papale, conformemente alle «regole naturali» e sono quindi date valide. PostgreSQL™ segue a pennello lo standard SQL di contare le date esclusivamente nel calendario Gregoriano, anche per gli anni precedenti all'utilizzo del calendario.

Differenti calendari sono stati sviluppati in varie parti del mondo, molti precedenti il sistema Gregoriano. Per esempio, gli inizi del calendario Cinese possono essere rinvenuti fin dal quattordicesimi secolo AC. La leggenda narra che l'imperatore Huangdi inventò quel calendario nel 2637 AC. La Repubblica Popolare Cinese utilizza il calendario Gregoriano per scopi civili. Il calendario Cinese è utilizzato per determinare le festività.

La «data Juliana» non è correlata con il «calendario Juliano». Il sistema della data Juliana fu inventato dallo studioso Francese Joseph Justus Scaliger (1540-1609) e probabilmente prende il suo nome dal padre di Scaliger, lo studioso Italiano Julius Caesar Scaliger (1484-1558). Ne sistema di data Juliana, ciascun giorno ha un numero consecutivo, iniziando da JD 0 (che viene qualche volta chiamato la data Juliana). JD 0 corrisponda al 1 gennaio 4713 AC nel calendario Juliano, o al 24 novembre 4714 AC nel calendario Gregoriano. Il conteggio della data Juliana è molto spesso utilizzato dagli astronomi per identificare le loro osservazioni notturne e pertanto una data parte dal mezzogiorno UTC al successivo, piuttosto che da mezzanotte a mezzanotte: JD 0 designa le 24 ore da mezzogiorno UTC del 1 gennaio 4713 AC al mezzogiorno UTC del 2 gennaio 4713 AC.

Sebbene PostgreSQL™ supporti la notazione di data Juliana per l'input e l'output delle date (e la utilizzi anche per alcuni calcoli interni di data e ora), esso non osserva la raffinatezza dell'avere le date che iniziano dal mezzogiorno al successivo. PostgreSQL™ tratta una data Juliana come decorrente dalla mezzanotte alla successiva.

Documentazione di PostgreSQL 9.0 > Appendici > Supporto di data e orario > Storia delle unità
PrecedenteFile di configurazione di data e orarioParole chiave SQLSuccessivo