On 13-10-2011 10:47, Pedro Ivo Bispo França wrote: > O problema é que se eu altero o timezone da base, TODAS as datas da base, > mesmo as anteriores ao horário de verão, vão ser alteradas no output. Como > evitar isso? Talvez o a coluna "is_dst" em pg_timezone_names ajude em algo? > Não entendi direito como ela funciona... > Isso porque você *não* armazena o timezone no campo data/hora (aka timestamp without time zone). Quando estamos trabalhando com data/hora temos que fazer a seguinte pergunta: a zona horária de armazenamento é a mesma que a de apresentação? Se sim, podemos utilizar o tipo de dado 'timestamp without time zone'; senão, o tipo de dado deve ser 'timestamp with time zone'.
A coluna is_dst indica se a zona horária possui horário de verão ou não (aka daylight saving time). Aplicações que funcionam em múltiplas zonas horárias geralmente escolhem uma zona horária padrão (por exemplo, horário de Brasília), utilizam o tipo de dado 'timestamp with time zone' e ao manipular os campos data/hora sempre utilizam "AT TIMEZONE 'foo'" [1] de acordo com cada caso. [1] http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-ZONECONVERT -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral