Postgresdebe tener información tabular interna para decodificar la zona horaria, desde que no hay un sistema estandar de interface *nix para proveer acceso a lo general, información de zona de tiempo cruzada. El SO subyacente es usado para proveer información de zona de tiempo parasalidas.
Tabla UG1-1. Zonas de tiempo reconocidas porPostgres
Zona de Tiempo | fuera de UTC | descripción |
---|---|---|
NZDT | +13:00 | Hora de luz del día de nueva Zelanda |
IDLE | +12:00 | Fecha internacional lineal, Este |
NZST | +12:00 | Hora Std de Nueva Zelanda |
NZT | +12:00 | Hora de Nueva Zelanda |
AESST | +11:00 | Hora de verano Std de Australia del este |
ACSST | +10:30 | Hora de verano Std de Australia Central |
CADT | +10:30 | Hora de luz del día de Australia |
SADT | +10:30 | Hora de luz del día de Australia del sur |
AEST | +10:00 | Hora Std de Australia del este |
EAST | +10:00 | Hora Std de Australia del Este |
GST | +10:00 | Hora de Guam Std, Zona 9 de USSR |
LIGT | +10:00 | Melbourne, Australia |
ACST | +09:30 | Hora Std de Australia Central |
CAST | +09:30 | Hora Std de Australia Central |
SAT | +9:30 | Hora Std de Australia del sur |
AWSST | +9:00 | Hora Std de verano de Austrialia del oeste |
JST | +9:00 | Hora Std de Japón, Zona 8 de USSR |
KST | +9:00 | Hora estandart de Korea |
WDT | +9:00 | Hora de luz del día del Oste de Australia |
MT | +8:30 | Hora de Moluccas |
AWST | +8:00 | Hora Std de Australia del oeste |
CCT | +8:00 | Hora de la costa de China |
WADT | +8:00 | Hora de luz del día del oeste de australia |
WST | +8:00 | Hora Std del Oeste de Australia |
JT | +7:30 | Hora de Java |
WAST | +7:00 | Hora Std del Oeste de Australia |
IT | +3:30 | Hora de Irán |
BT | +3:00 | Hora de Baghdad |
EETDST | +3:00 | Hora de luz del día en Europa del este |
CETDST | +2:00 | Hora de luz del día en Europa Central |
EET | +2:00 | Europa del Este,Zona 1 de USSR |
FWT | +2:00 | Hora de invierno Frances |
IST | +2:00 | Hora Std de Israel |
MEST | +2:00 | Hora de verano de Europa del centro |
METDST | +2:00 | Hora de luz del día en Europa del centro |
SST | +2:00 | Hora de verano de Suecia |
BST | +1:00 | Hora de verano de Inglaterra |
CET | +1:00 | Hora de Europa central |
DNT | +1:00 | Hora normal de Dansk |
DST | +1:00 | Hora estandart de Dansk(?) |
FST | +1:00 | Hora de verano Francesa |
MET | +1:00 | Hora de Europa del Centro |
MEWT | +1:00 | Hora de invierno de Europa del Centro |
MEZ | +1:00 | Zona de Europa del Centro |
NOR | +1:00 | Hora estandart de Norway |
SET | +1:00 | Hora de Seychelles |
SWT | +1:00 | Hora de invierno de Suecia |
WETDST | +1:00 | Hora de luz del día del Oeste de Europa |
GMT | 0:00 | Hora principal de Greenwish |
WET | 0:00 | Europa del Oeste |
WAT | -1:00 | Hora del oeste de Africa |
NDT | -2:30 | Hora de luz del día de Newfoundland |
ADT | -03:00 | Hora de luz del día de Atlantic |
NFT | -3:30 | Hora estandart de Newfoundland |
NST | -3:30 | Hora estandart de Newfoundland |
AST | -4:00 | Hora Std de Atlantic(Canada) |
EDT | -4:00 | Hora de luz del día del este |
ZP4 | -4:00 | GMT +4 hours |
CDT | -5:00 | Hora de luz del día Central |
EST | -5:00 | Hora estandart del este |
ZP5 | -5:00 | GMT +5 hours |
CST | -6:00 | Hora Std Central |
MDT | -6:00 | Hora de luz del día de la Montaña |
ZP6 | -6:00 | GMT +6 hours |
MST | -7:00 | Hora estandart de la montaña |
PDT | -7:00 | Hora de luz del día del Pacífico |
PST | -8:00 | Hora Std del Pacífico |
YDT | -8:00 | Hora de luz del día de Yukon |
HDT | -9:00 | Hora de luz del día en Hawaii/Alaska |
YST | -9:00 | Hora estandart de Yukon |
AHST | -10:00 | Hora Std de Alaska-Hawaii |
CAT | -10:00 | Hora de Alaska Central |
NT | -11:00 | Hora Nome |
IDLW | -12:00 | Linea de Fecha Internacional, Oeste |
Las zonas horarias Australianas y sus variantes de denominación cuentan con un curato de la totalidad de las zonas horarias de la tabla de búsqueda de las zonas horarias de Postgres. Hay dos conflictos de denominación con zonas horarias en común definidas en los Estados Unidos, CST y EST.
Si la opción del compilador USE_AUSTRALIAN_RULES esta activa entonces CST y EST se interpretaran siguiendo los convenios Australianos.
Los tipos de fecha/tiempo son todos decodificados usando un conjunto de rutinas comunes.
Interpretación de las entradas de Fecha/tiempo
Partiendo la cadena de entrada en muestras y clasificando cada uno de las marcas como cadena, tiempo, zona horaria, o número.
Si la muestra contiene dos puntos (":"), esto es una cadena de tiempo.
si la muestra contiene un guión ("-"), barra ("/"), o un punto ("."), esto es una cadena de fecha que puede tener el nombre del mes.
Si la muestra es solamente numérica, entonces es cualquiera de estas opciones un campo sencillo un fecha concatenada ISO-8601 (p.e. "19990113" para 13 Enero del 1999) o tiempo (p. e. 141516 para 14:15:16).
Si la muestra comienza con un mas ("+") o un menos ("-"), entonces es o una zona horaria o un campo especial.
Si la muestra es una cadena de texto, compara con posibles cadenas.
Hacer un búsqueda binaria en la tabla de consulta de la muestra para cada cadena especial (p. e. today), day (p. e. Thursday), month (p. e. January), o noise word (p. e. on).
Pone los valores del campo y la mascara de bit para los campos. Por ejemplo, pone año, mes, día para today, y adicionalmente hora, minutos, segundos para now.
Si no lo encuentra, hace una búsqueda binaria similar en la tabla de consulta para encontrar la muestra a la zona horaria.
Si no lo encuentra, lanza un error.
La muestra es un número o un campo numérico.
Si hay más de 4 dígitos, y si no se ha leído con posterioridad otro campo de tipo fecha, entonces lo interpretará como un "fecha concatenada" (e.g. 19990118). Con 8 y 6 dígito se interpreta como año, mes, y día, mientras que con 7 y 5 dígitos se interpreta como año, día del año, respectivamente.
Si la muestra tiene 3 dígitos y un año ha sido decodificado, entonces se interpreta como día del año.
Si es más largo que dos dígitos, entonces se interpreta como el año.
Si está en modo fecha Europea, y si el campo día no ha sido leído todavía, y si el valor es más pequeño o igual a 31, entonces se interpreta como un día.
Si el campo mes no ha sido leído todavía, y si el valor es más pequeño o igual que 12, entonces se interpreta como un mes.
Si el campo día no ha sido leído todavía, y si el valor es más pequeño o igual que 31, entonces se interpreta como un día.
Si no, se interpreta como un año.
Si se ha especificado AC, anula el año y desplaza uno al almacenado interno (no hay año cero en el calendario Gregoriano, pero numéricamente 1AC es el año cero).
Si no se ha especificado, y si el campo año tiene dos dígitos de longitud, entonces ajustamos el año a 4 dígitos. Si el campo no es más pequeño que 70, entonces sumamos 2000; si no, sumamos 1900.
Los años Gregorianos 1-99AD pueden ser introducidos usando 4 dígitos precedidos por ceros (p. e. 0099 es 99AD). Los tres dígitos también son aceptados como un año bajo muchas circunstancias, sin embargo dependiendo de la posición la cadena numérica puede ser interpreta en lugar de un día. |