Appendice UG1. Support de Date/Time

Table des matières
Time Zones
Historique

Time Zones

Postgres doit avoir des tables d'information internes pour le décodage des zones horaires, comme il n'y a pas de standard *nix pour ce type d'information. Le système d'exploitation est utilisé pour fournir l'information sur la zone horaire à output.

Tableau UG1-1. Postgres Recognized Time Zones

Time ZoneOffset from UTCDescription
NZDT+13:00New Zealand Daylight Time
IDLE+12:00International Date Line, East
NZST+12:00New Zealand Std Time
NZT+12:00New Zealand Time
AESST+11:00 Australia Eastern Summer Std Time
ACSST+10:30 Central Australia Summer Std Time
CADT+10:30 Central Australia Daylight Savings Time
SADT+10:30South Australian Daylight Time
AEST+10:00 Australia Eastern Std Time
EAST+10:00 East Australian Std Time
GST+10:00Guam Std Time, USSR Zone 9
LIGT+10:00Melbourne, Australia
ACST+09:30 Central Australia Std Time
CAST+09:30 Central Australia Std Time
SAT+9:30South Australian Std Time
AWSST+9:00 Australia Western Summer Std Time
JST+9:00Japan Std Time,USSR Zone 8
KST+9:00Korea Standard Time
WDT+9:00West Australian Daylight Time
MT+8:30Moluccas Time
AWST+8:00 Australia Western Std Time
CCT+8:00 China Coastal Time
WADT+8:00West Australian Daylight Time
WST+8:00West Australian Std Time
JT+7:30Java Time
WAST+7:00West Australian Std Time
IT+3:30Iran Time
BT+3:00 Baghdad Time
EETDST+3:00 Eastern Europe Daylight Savings Time
CETDST+2:00 Central European Daylight Savings Time
EET+2:00 Eastern Europe, USSR Zone 1
FWT+2:00French Winter Time
IST+2:00Israel Std Time
MEST+2:00Middle Europe Summer Time
METDST+2:00Middle Europe Daylight Time
SST+2:00Swedish Summer Time
BST+1:00 British Summer Time
CET+1:00 Central European Time
DNT+1:00 Dansk Normal Tid
DST+1:00 Dansk Standard Time (?)
FST+1:00 French Summer Time
MET+1:00Middle Europe Time
MEWT+1:00Middle Europe Winter Time
MEZ+1:00Middle Europe Zone
NOR+1:00Norway Standard Time
SET+1:00Seychelles Time
SWT+1:00Swedish Winter Time
WETDST+1:00Western Europe Daylight Savings Time
GMT0:00Greenwish Mean Time
WET0:00Western Europe
WAT-1:00West Africa Time
NDT-2:30Newfoundland Daylight Time
ADT-03:00 Atlantic Daylight Time
NFT-3:30Newfoundland Standard Time
NST-3:30Newfoundland Standard Time
AST-4:00 Atlantic Std Time (Canada)
EDT-4:00 Eastern Daylight Time
ZP4-4:00GMT +4 hours
CDT-5:00 Central Daylight Time
EST-5:00 Eastern Standard Time
ZP5-5:00GMT +5 hours
CST-6:00 Central Std Time
MDT-6:00Mountain Daylight Time
ZP6-6:00GMT +6 hours
MST-7:00Mountain Standard Time
PDT-7:00Pacific Daylight Time
PST-8:00Pacific Std Time
YDT-8:00Yukon Daylight Time
HDT-9:00Hawaii/Alaska Daylight Time
YST-9:00Yukon Standard Time
AHST-10:00 Alaska-Hawaii Std Time
CAT-10:00 Central Alaska Time
NT-11:00Nome Time
IDLW-12:00International Date Line, West

Note

Si l'option de compilation USE_AUSTRALIAN_RULES est placée EST se référera au Australia Eastern Std Time, qui a un décalage de +10:00 heures sur le GMT.

Les zones horaires australiennes et leurs différentes variantes comptent pour un quart de la table des zones horaires de Postgres.

Date/Time Input Interpretation

Les types date/time types sont décodés en utilisant un ensemble de routines communes.

  1. Segmente la chaîne entrée en signes et catégorise chaque signe comme chaîne, heure, zone horaire ou nombre.

    1. Si le signe contient deux points (":"), c'est une chaîne time.

    2. Si le signe contient un tiret ("-"), un slash ("/"), ou un point ("."), c'est une chaîne date qui peut avoir un mois texte.

    3. Si le signe est uniquement numérique, il est soit un champ unique, soit une date ISO-8601 concatenée (e.x. "19990113" pour Janvier 13, 1999) ou une heure (e.x. 141516 pour 14:15:16).

    4. Si le signe démarre avec un plus ("+") ou un moins ("-"), c'est soit une zone horaire soit un champ spécial.

  2. Si le signe est une chaîne texte, s'harmonise avec des chaînes possibles.

    1. Fait une consultation de table de recherche binaire comme une ou l'autre chaîne spéciale (e.x. today), un jour (e.x. Thursday), un mois (e.x. January), ou un (bruit) (e.x. on).

      Positionner les valeurs des champs et les masques binaires pour les champs. Par exemple, placer année, mois et jour à today, et heure, minute, seconde à now.

    2. Si non trouvé, faire une consultation de table de recherche binaire semblable pour correspondre au signe avec un fuseau horaire.

    3. Si non trouvé, indique une erreur.

  3. Le signe est un nombre ou un champ numérique.

    1. S'il y a plus de quatre décimales, et si aucun autre champ date n'a été lu précédemment, interprète comme une "date concaténée" (e.x. 19990118). 8 et 6 décimales sont interprétées comme année, mois et jour, tandis que 7 et 5 décimales sont interprétées comme année, jour de l'année.

    2. Si le signe est de trois décimales et qu'une année a déja été cécodée, l'interprétation sera le jour de l'année.

    3. Si pas plus de deux décimales, interprété comme une année.

    4. Si dans le mode date européen, et si le champ jour n'a pas encore été lu, et si la valeur est inférieure ou égale à 31, sera interprété comme jour.

    5. En mode date non-européen (US), et si le champ mois n'a pas encore été lu, et si la valeur est inférieure ou égale à 12, sera interprété comme un mois.

    6. Si le champ jour n'a pas encore été lu, et si la valeur est inférieure ou égale à 31, sera interprété comme un mois.

    7. Si le champ mois n'a pas encore été lu, et si la valeur est inférieure ou égale à 12, sera interprété comme un mois.

    8. Autrement, sera interprété comme une année.

  4. Si BC (avant J.C) a été spécifié, nie l'année et compense par 1 (il n'y a pas d'année zéro dans le calandrier grégorien, ainsi numériquement 1BC devient l'année zéro).

  5. Si BC n'est pas spécifié, et si le champ année a deux décimales de longueur, alors ajuste l'année sur 4 décimales. Si le champ est inférieur à 70 ajoute 2000, dans les autres cas, ajoute 1900.

    Tuyau

    Les années grégoriennes 1-99 après J.C peuvent être entrées en utilisant 4 décimales débutant par des zéros (e.x. 0099 équivaut à 99 après J.C). Trois décimales sont aussi acceptées la plupart du temps, quoique selon sa position la chaîne numérique peut être interprétée comme jour aussi.