我們正在部署我們自己的流量計(很像這個USGS測量儀:http://waterdata.usgs.gov/usa/nwis/uv?site_no=03539600),所以我們的皮艇知道是否有足夠的水來划槳,不浪費時間和天然氣驅出那裏。我們希望在跨越東部和中部時區的東南部白水區域安裝其中的一些。PostgreSQL夏時制時區
我使用記錄的current_time的默認值來存儲插入記錄的時間。我想稍後使用MM/DD/YYYY HH12:MI AM TZ
格式顯示數據,其格式輸出如03/12/2012 01:00 AM CDT
。我還希望輸出結果能夠知道日光節省時間的變化,因此當我們'前進'和'後退'時,前面句子的最後部分會在CST和CDT之間發生變化。這一變化發生在今年3月11日,我已經在下面的DST這一行的兩邊加上了日期。我正在使用我的Windows 7筆記本電腦進行開發,稍後我們將在Unix機器上進行部署。 Postgres顯然已經發現我的Windows電腦已經設置在美國東部時區。我試着用'沒有時區的時間戳'字段和'有時區的時間戳'字段,但不能讓它工作。
我試過在我的選擇中使用「時區」,並且每件事物都在工作,直到它顯示時區爲止。實際的時間是時間戳的一部分,在我請求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