我正试图在postgres中获取亚洲/加尔各答(印度标准时间)的本地时间。
avilpage@/tmp:avilpage> SELECT LOCALTIME;
+-----------------+
| time |
|-----------------|
| 09:48:58.223295 |
+-----------------+
SELECT 1
Time: 0.013s
avilpage@/tmp:avilpage> SELECT LOCALTIME AT TIME ZONE 'UTC';
+-----------------------+
| timezone |
|-----------------------|
| 04:19:03.232132+00:00 |
+-----------------------+
SELECT 1
Time: 0.014s
对于UTC
作为时区,它给出了正确的值。对于具有偏移量的utc,它无法正确计算偏移量。
avilpage@/tmp:avilpage> SELECT LOCALTIME AT TIME ZONE 'UTC+5:30';
+-----------------------+
| timezone |
|-----------------------|
| 22:49:10.079737-05:30 |
+-----------------------+
avilpage@/tmp:avilpage> SELECT LOCALTIME AT TIME ZONE 'UTC-5:30';
+-----------------------+
| timezone |
|-----------------------|
| 09:49:52.755688+05:30 |
+-----------------------+
SELECT 1
Time: 0.013s
如果使用名称而不是缩写名称,则它提供了正确的偏移量。
avilpage@/tmp:avilpage> SELECT LOCALTIME AT TIME ZONE 'Asia/Kolkata';
+-----------------------+
| timezone |
|-----------------------|
| 09:50:00.742252+05:30 |
+-----------------------+
SELECT 1
Time: 0.014s
有没有一种方法可以仅使用utc和offset来获取某个时区的正确本地时间?