Postgres 的 AT TIME ZONE 'UTC' 陷阱
Footguns with Postgres "at time zone 'UTC'"

你以为 Postgres 的 AT TIME ZONE 'UTC' 只是简单的时区转换?大错特错。这个看似无害的操作会将 timestamptz 类型悄悄转为 timestamp,导致后续的时间计算和比较完全失效。特别是在处理跨月数据时,由于时区依赖,直接相加月份会得到错误结果。更糟糕的是,timestamp 和 timestamptz 永远无法相等。想要修复这个隐蔽的 bug,你可能需要重复使用两次 AT TIME ZONE 'UTC' 来确保数据类型正确。这篇文章揭示了 Postgres 时间处理中那些容易被忽视的陷阱,帮你避开数据错误的雷区。
Postgres AT TIME ZONE 'UTC' 并不做你以为它做的事。