FROM_TZ函数可以将传入的时间戳和时区信息转换成当前数据库所在时区的时间。

您需要安装polar_from_tz插件才能使用FROM_TZ函数,安装命令如下:

CREATE EXTENSION polar_from_tz;

语法

from_tz(timestamp_value, time_zone_value)

参数

参数 说明
timestamp_value 时间戳,例如2020-11-26 08:00:00
time_zone_value 时区,支持如下几种格式的字符串:
  • 'TZH:TZM'格式,例如'+08:00'
  • TZR格式,例如America/Los_Angeles
    说明 您可通过以下语句查询支持的时区值:
    select * from pg_timezone_names;
  • TZD格式,例如PST
    说明 您可通过以下语句查询支持的时区值:
    select * from pg_timezone_abbrevs;

示例

  • time_zone_value的值为'TZH:TZM'格式时,查询语句如下:
    select from_tz('2020-11-26 08:00:00','+08:00') FROM dual;

    查询结果如下:

    "2020-11-26 00:00:00+00"
  • time_zone_value的值为TZR格式时,查询语句如下:
    select from_tz('2020-11-26 08:00:00','America/Los_Angeles') FROM dual;

    查询结果如下:

    "2020-11-26 16:00:00+00"
  • time_zone_value的值为TZD格式时,查询语句如下:
    select from_tz('2020-11-26 08:00:00','PST') FROM dual;

    查询结果如下:

    "2020-11-26 16:00:00+00"