Estamos implementando nuestros propios medidores de flujo (muy parecido a este medidor USGS: http://waterdata.usgs.gov/usa/nwis/uv?site_no=03539600) para que los kayakistas sepamos si hay suficiente agua para remar la corriente y no pierda el tiempo y gas para conducir allí. Esperamos instalar algunos de estos en toda la región sureste de aguas blancas que abarca las zonas horarias oriental y central.Huso horario con horario de verano en PostgreSQL
Estoy almacenando el tiempo que se inserta un registro usando el valor predeterminado de current_time para la grabación. Me gustaría mostrar más tarde los datos usando el formato MM/DD/YYYY HH12:MI AM TZ
, que produce lecturas como 03/12/2012 01:00 AM CDT
. También me gustaría que la salida tenga en cuenta los cambios en el horario de ahorro de luz diurna, por lo que la última parte de la oración anterior cambiaría entre CST y CDT cuando 'avancemos' y 'retrocedamos'. Este cambio ocurrió el 3/11/2012 este año y he incluido fechas en ambos lados de esta línea de DST a continuación. Estoy usando mi computadora portátil con Windows 7 para el desarrollo y luego nos desplegaremos en una caja Unix. Postgres aparentemente ha detectado que mi computadora con Windows está configurada en la zona horaria del este de EE. UU. Estoy intentando esto con un campo 'timestamp without time zone' y un campo 'timestamp with time zone' pero no puedo hacer que funcione.
He intentado usar 'en la zona horaria' en mis selecciones y todo está funcionando hasta que sea hora de mostrar la zona horaria. La hora real es parte de la marca de tiempo se resta correctamente por una hora cuando solicito el tiempo en CDT. Pero EDT se muestra en la salida.
SELECT reading_time as raw,
reading_time at time zone 'CDT',
to_char(reading_time at time zone 'CDT',
'MM/DD/YYYY HH12:MI AM TZ') as formatted_time
FROM readings2;
"2012-04-29 17:59:35.65";"2012-04-29 18:59:35.65-04";"04/29/2012 06:59 PM EDT"
"2012-04-29 17:59:40.19";"2012-04-29 18:59:40.19-04";"04/29/2012 06:59 PM EDT"
"2012-03-10 00:00:00";"2012-03-10 00:00:00-05";"03/10/2012 12:00 AM EST"
"2012-03-11 00:00:00";"2012-03-11 00:00:00-05";"03/11/2012 12:00 AM EST"
"2012-03-12 00:00:00";"2012-03-12 01:00:00-04";"03/12/2012 01:00 AM EDT"
Estoy almacenando la zona horaria que cada uno de nuestros medidores se encuentra en un personaje que varía campo una tabla separada. Consideré agregar este valor al final del tiempo de salida, pero quiero que cambie de CST a CDT sin mi intervención.
Gracias por su ayuda.
Sería útil si pudiera publicar la salida de 'psql''s' \ d lecturas2' aquí. – vyegorov