我们正在部署自己的流量计(与此USGS 测量仪非常相似),这样我们皮划艇爱好者就可以知道河流的水量是否足够,在不必要地浪费时间和汽油去那里之前就能知道。我们希望在东部和中部时区跨越的东南急流区域安装几个这样的流量计。
我使用记录的默认值 current_time 存储插入记录的时间。我希望以
我使用记录的默认值 current_time 存储插入记录的时间。我希望以
MM/DD/YYYY HH12:MI AM TZ
格式显示数据,输出结果类似于03/12/2012 01:00 AM CDT
。我还希望输出结果能够意识到夏令时的更改,因此当我们“向前弹”和“倒回来”时,前面句子的最后一部分将在 CST 和 CDT 之间更改。今年的更改发生在3/11/2012,下面包括此 DST 线两侧的日期。我正在使用 Windows 7 笔记本电脑进行开发,稍后我们将在 Unix 平台上部署。Postgres 显然检测到我的 Windows 计算机设置为美国东部时区。我尝试了使用“at time zone”在我的查询中,一切都正常工作,直到需要显示时区。时间戳的实际小时数在要求以 CDT 显示的时候被正确地减去了一个小时。但是输出结果显示为 EDT。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,而不需要我的干预。
感谢您的帮助。
psql
的\d readings2
的输出,那将非常有帮助。 - vyegorov