如何在PostgreSQL中将没有时区的时间戳和表示时区的整数转换为没有时区的新时间戳



假设我有一个包含两个字段的表:snapshot_date(不带时区的时间戳(和时区(整数(,

snapshot_date 时区
2021-01-12 08:00:00 -3
2021-01-12 00:00:00 -5

您需要首先将小时数添加到时间戳中,然后提取小时:

extract(hour from snapshot_date + make_interval(hours => timezone))

使用获得预期结果

extract(hour from snapshot_date + interval '1 hour' * timezone)

类似于:

show timezone; US/Pacific 
select ('2021-01-12 08:00:00'::timestamp::text || (-3)::text)::timestamptz; 
2021-01-12 03:00:00-08
select extract(hour from('2021-01-12 08:00:00'::timestamp::text || (-3)::text)::timestamptz);
3

相关内容

  • 没有找到相关文章

最新更新