首页 > 解决方案 > PostgreSQL如何将时区偏移的日期转换为UTC?

问题描述

我有一个带有以下格式的日期字段的 PostgreSQL 表

2017-09-07T17:24:33+08:00

我想将其转换为 UTC 时间。

我环顾四周,但发现无法使用这种特定的时间格式来做到这一点。我错过了什么?

谢谢

标签: postgresql

解决方案


timezone定义(https://www.postgresql.org/docs/9.1/functions-datetime.html):函数 timezone( zone , timestamp ) 等价于 SQL-conforming 构造timestamp AT TIME ZONE zone

SELECT timezone('UTC','2017-09-07T17:24:33+08:00');

如果从列中选择,

with t as (
    SELECT '2017-09-07T17:24:33+08:00' as tm
)
SELECT timezone('UTC',tm::timestamptz) as ts
from t;

推荐阅读