我有一个视图,其中有一个年龄列(例如Age(ORTNT_TIMESTamp,birth_dt)).这可以很好地工作,但当通过FDW使用时,会通过当前时区与GMT的偏差来抵消年龄.PostgreSQL文档指出postegerSQL_FDW将TIMEZONE设置为UTC.我们如何解决这个问题?
考虑以下表定义、表中的数据以及基于表的视图:
CREATE TABLE test
(
id serial PRIMARY KEY,
birth_dtm TIMESTAMP
);
INSERT INTO test (birth_dtm) VALUES ('2024-03-22 08:23', '2024-03-07 13:19', '2024-03-24 01:06);
CREATE VIEW view_test AS
SELECT id, birth_dtm, AGE (current_timestamp, birth_dtm) c_age
FROM test;
现在,当我们在此VIEW可用的外部数据库中执行该声明时:
SELECT *, AGE (current_timestamp, birth_dtm)
FROM FDB.view_test;
我们得到以下输出:
id | birth_dtm | c_age | age |
---|---|---|---|
1 | 2024-03-22 08:23 | 20 days 07:31:44.651565 | 20 days 13:01:44.651323 |
2 | 2024-03-07 13:19 | 1 mon 4 days 02:35:44.651565 | 1 mon 4 days 08:05:44.651323 |
3 | 2024-03-24 01:06 | 18 days 14:48:44.651565 | 18 days 20:18:44.651323 |
那么我的问题是如何实现第4列所示的第3列(view_Test.c_age)中的输出?
Note that the difference is 5.30 between column 3 and column 4 is as per TIME ZONE Asia/Kolkata.