使用时区调整时间戳
Adjusting a timestamp with a timezone
我使用的是 postgres,我有一个没有时区的时间戳和“-2”形式的时区偏移量。我将如何将偏移量应用于时区?我知道 date - interval '2 hours' 之类的东西适用于固定偏移量,但我一直无法弄清楚如何使用另一列中的变量来做到这一点。
像这样的东西应该对你有用:
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
我使用的是 postgres,我有一个没有时区的时间戳和“-2”形式的时区偏移量。我将如何将偏移量应用于时区?我知道 date - interval '2 hours' 之类的东西适用于固定偏移量,但我一直无法弄清楚如何使用另一列中的变量来做到这一点。
像这样的东西应该对你有用:
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