Sim*_*rta 4 sql postgresql datetime postgresql-9.3
有什么方法可以将character varying列中的 rfc3339 字符串正确转换为timestamp with timezone?
Input: "2015-01-28T17:41:52Z"
Expected output: "2015-01-28 17:41:52+00"
Current output: "2015-01-28 17:41:52+01"
Run Code Online (Sandbox Code Playgroud)
我尝试了以下
/* begin dummy data */
WITH messages as (
select 123 as id, '2015-01-28T17:41:52Z'::text as received
)
/* end dummy data */
SELECT id, received, (to_timestamp(received, 'YYYY-MM-DDThh24:MI:SS')) as d
FROM messages
Run Code Online (Sandbox Code Playgroud)
添加TZortz不能用于输入数据,OF 在 9.4 中可用,但在 9.3 中不可用。
RFC3339只是 ISO 8601 的一个配置文件。
PostregreSQL接受任何有效的ISO 8601的输入为date/ timestamp/ timestamp with time zone。尝试投射,例如:
SELECT '2015-01-28T17:41:52Z'::timestamptz
Run Code Online (Sandbox Code Playgroud)
注意:但是,您的输出(在您的客户端中)将始终处于您当前的时区。
| 归档时间: |
|
| 查看次数: |
3531 次 |
| 最近记录: |