Time zone with daylight savings times in PostgreSQL
我们正在部署我们自己的流量计(很像USGS规格:http://waterdata.usgs.gov/usa/nwis/uv?site_no = 03539600)所以我们皮划艇运动员知道是否有足够的水来划水流并且不要浪费时间和气体去那里。我们希望在横跨东部和中部时区的东南白水区安装其中一些。
我正在使用记录的默认值current_time存储插入记录的时间。我想稍后使用
我已经尝试在我的选择中使用"在时区",并且每件事都在工作,直到显示时区为止。当我在CDT要求时间时,实际小时是时间戳的一部分被正确地减去一个小时。但EDT显示在输出中。
1 2 3 4 5 6 7 8 9 10 11 | 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" |
我将每个仪表所在的时区存储在一个字符变化字段中的单独表格中。我考虑过只将这个值附加到时间输出的末尾,但我希望它在没有我干预的情况下从CST更改为CDT。
谢谢你的帮助。
您可以考虑使用完整的Olsen样式时区名称,而不是使用CDT或CST等时区名称。在中央时间的情况下,您可以选择时区。与您的位置匹配的任何一个,例如
你肯定想要一个
TIMESTAMP没有时区的语义令人困惑,几乎无用。我强烈建议您根据所描述的内容完全不使用该类型。
我真的很困惑的问题是关于在
您可以使用Guan Yang的答案中建议的格式创建已知时区的表,然后对该表使用外键列。有效的时区可以从