首页 > 解决方案 > 使用时区调整时间戳

问题描述

我正在使用 postgres,并且我有一个没有时区的时间戳和一个“-2”形式的时区偏移量。如何将偏移量应用于时区?我知道像 date - interval '2 hours' 这样的东西适用于固定的偏移量,但我无法弄清楚如何使用另一列中的变量来做到这一点。

标签: postgresqldatetimetimezone-offset

解决方案


像这样的东西应该可以为您解决问题:

CASE WHEN offset_var > 0 THEN timestamp_no_tz + (offset_var || ' hour')::INTERVAL 
WHEN offset_var < 0 THEN timestamp_no_tz - (abs(offset_var) || ' hour')::INTERVAL 
ELSE timestamp_no_tz END

推荐阅读