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

PostgreSQL中如何显示带时区的UTC当前时间戳?

解决PostgreSQL获取带UTC时区后缀时间的问题

你当前执行的select (current_timestamp AT TIME ZONE 'UTC');返回不带时区后缀的结果,是因为AT TIME ZONE 'UTC'会把带时区的current_timestamp(timestamp with time zone类型)转换成不带时区的时间戳(timestamp without time zone),所以输出没有时区标记。

要得到2024-10-04 18:44:59.34674+00:00格式的结果,有两种常用方法:

方法1:获取带时区的时间类型结果

如果需要的是timestamp with time zone类型的原生输出(而非字符串),可以通过两次AT TIME ZONE转换实现:

SELECT (current_timestamp AT TIME ZONE 'UTC') AT TIME ZONE 'UTC';

原理:第一次AT TIME ZONE 'UTC'得到UTC时刻的不带时区时间戳,第二次AT TIME ZONE 'UTC'将这个时间戳标记为UTC时区的带时区时间,输出会自动带上+00:00后缀。

方法2:格式化输出为指定字符串

如果只需要字符串格式的结果,可以用to_char函数自定义格式:

SELECT to_char(current_timestamp AT TIME ZONE 'UTC', 'YYYY-MM-DD HH24:MI:SS.US+00:00');

其中US表示微秒精度,+00:00是固定的UTC时区后缀,这样会直接输出你需要的字符串格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:32:33