You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中如何将ISO 8601格式时间转换为标准datetime格式?

PostgreSQL 时间格式转换:从ISO 8601到YYYY-MM-DD HH:MI:SS

针对输入格式2022-11-28T12:18:46.534919023Z(标准ISO 8601带UTC时区标记),要转换为2022-11-28 12:18:46格式插入datetime类型字段,PostgreSQL有几种简洁实现方式:

方法1:直接类型转换截断毫秒

PostgreSQL可自动识别ISO 8601格式,通过两步类型转换直接截断毫秒:

-- 转换为不带时区、无毫秒的timestamp(对应datetime字段类型)
SELECT '2022-11-28T12:18:46.534919023Z'::timestamptz::timestamp(0);

timestamptz先解析带时区的输入字符串,timestamp(0)将其转换为不带时区且保留0位毫秒的时间类型,结果就是2022-11-28 12:18:46,可直接插入datetime字段。

方法2:显式指定格式解析

如果需要明确匹配格式规则,用TO_TIMESTAMP函数:

SELECT TO_TIMESTAMP('2022-11-28T12:18:46.534919023Z', 'YYYY-MM-DD"T"HH24:MI:SS.US"Z"')::timestamp(0);
  • YYYY-MM-DD"T"HH24:MI:SS.US"Z" 精准匹配输入格式,US对应微秒部分,"Z"匹配末尾时区标记
  • 同样通过::timestamp(0)截断毫秒

插入表的实际写法

在INSERT语句中直接套用转换逻辑即可:

INSERT INTO your_table (datetime_column)
VALUES ('2022-11-28T12:18:46.534919023Z'::timestamptz::timestamp(0));

内容的提问来源于stack exchange,提问作者Oscar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:00:28