0

我正在使用多个时区可用的代码。我需要创建一个函数,该函数采用选定的本地时间戳以及本地时区。函数的返回值应该是本地时间的UTC时间(给定本地时区的本地时间)。

我正在研究 PostgreSQL 8.3

4

1 回答 1

3
SELECT Now() AT TIME ZONE 'UTC';

这将timestamp without time zone在给定的指定时区(在我的示例中为 UTC)返回timestamp with time zone

来自 PostgreSQL文档

SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'MST';
Result: 2001-02-16 19:38:40-08

SELECT TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40-05' AT TIME ZONE 'MST';
Result: 2001-02-16 18:38:40

您可以从以下位置获取时区列表pg_timezone_names

select * from pg_timezone_names limit 5

name;abbrev;utc_offset;is_dst
----------------------
PRC;CST;08:00:00;f
Asia/Brunei;BNT;08:00:00;f
Asia/Ujung_Pandang;CIT;08:00:00;f
Asia/Ust-Nera;VLAT;11:00:00;f
Asia/Phnom_Penh;ICT;07:00:00;f
于 2013-06-03T18:15:31.607 回答