我employees
表PostgreSQL的:創建表時指定默認時區
CREATE TABLE employees
(
id integer NOT NULL,
name text,
withouttz timestamp without time zone,
withtz timestamp with time zone,
CONSTRAINT primarykey_emp PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE employees
OWNER TO chris;
我在下面的方式插入兩個記錄的定義如下:
INSERT INTO employees(
id, name, withouttz, withtz)
VALUES (1, 'test', '2011-01-01 00:00:00', '2011-01-01 12:00:00+03');
INSERT INTO employees(
id, name, withouttz, withtz)
VALUES (2, 'test', '2011-01-01 00:00:00', '2011-01-01 12:00:00');
我寫了簡單的Java類select * from employees
輸出以下內容:
col1: 1
col2: test
col3: 2011-01-01 00:00:00
col4: 2011-01-01 07:00:00-8:00
col1: 2
col2: test
col3: 2011-01-01 00:00:00
col4: 2011-01-01 12:00:00-8:00
問題: 有沒有辦法創建一個postgres表的timestamp with time zone
,以便它認爲時區是UTC而不是服務器的本地時區?
注意:set timezone TO 'GMT';
對我來說不是一個解決方案,因爲它只適用於特定的會話。此外,如果解決方案亙古不依賴於服務器的本地時區的所有
在此先感謝
@ null.pointer,因爲我在我的問題中非常清楚地說過,'SET TIMEZONE TO'GMT';'對我來說不是一個解決方案。 – Chris
再次閱讀postgresql文檔中有關時區的文檔。時區基於客戶端,而不是服務器。 SET TIMEZONE絕對是一個解決方案。 – cxdf
此外,您可以檢出PGTZ環境變量以使其自動化。 – cxdf