在Oracle中,如何將「帶時區的時間戳」轉換爲服務器的當前時區?我需要動態確定服務器的當前時區是什麼。將「帶時區的時間戳記」列字段轉換爲服務器的當前時區
create table test_table1
(rec1 timestamp with time zone)
insert into test_table1(rec1) values (
to_timestamp_tz('1/1/1900 09:00:00 AM US/EASTERN','dd-mm-yyyy hh:mi:ss AM TZR')
)
SELECT NEW_TIME(rec1, TO_CHAR(rec1, 'TZR'), TO_CHAR(SYSTIMESTAMP, 'TZR'))
FROM test_table1
上面的示例創建一個帶有時區列的表。然後我在東部時區插入一行。 select語句不起作用。我試圖實現的是將rec_1列轉換爲服務器的時區並返回。
直接從表格中提取rec1列。當我使用查詢時:從test_table1中選擇to_char(rec1,'TZD')我得到'EST'/'CST',但是當我使用系統標記時,我得到空值。我想以'EST'格式獲取系統的當前時區,並使用new_date函數將其轉換爲東部。因此,如果它是東部同時將返回,如果不是,那麼它將被轉換。 – user305801 2010-09-01 16:18:16
我讓DBA將dbtimezone設置爲正確的時區(-04:00)。現在我已經知道如何將此數據庫或數據庫當前日期/時間轉換爲東部時區。我也想考慮夏令時。雖然tz_offset是-04:00,但它確實是-05:00。 – user305801 2010-09-03 00:05:31