PostgreSQL:将没有时区的时间戳转换为特定时区不起作用
PostgreSQL : Converting timestamp without time zone to a specific timezone not working
我正在尝试将 Postgres 中的列从 Timestamp without time zone
迁移到 timestamp with time zone
。我想在德国时间这样做,所以我使用了以下查询:
alter table table_name alter column uploaddate type TIMESTAMP WITH TIME ZONE USING uploaddate at time zone 'UTC+01:30';
不幸的是它不起作用,它正在添加 2015-06-30 07:30:48.785+05:30
。我目前在印度,是 +5.30。我如何指定查询以使用德国时区进行查询。谢谢你。
存储在 table 中的时间戳的时区是什么?也就是说,如果table中有2016-09-22 07:30
这样的值,那么07:30
是在什么时区?这是您要使用的时区,而不是您当前的本地时区。所以例如如果所有时间戳都以德国时区表示,你应该这样做:
alter table table_name
alter column uploaddate type TIMESTAMP WITH TIME ZONE
USING uploaddate at time zone 'Europe/Berlin';
不要忘记您可以 运行 在事务中执行上述操作,这样您就可以在提交结果之前检查结果(当然这会锁定整个 table 并阻止所有其他table).
的并发查询
我正在尝试将 Postgres 中的列从 Timestamp without time zone
迁移到 timestamp with time zone
。我想在德国时间这样做,所以我使用了以下查询:
alter table table_name alter column uploaddate type TIMESTAMP WITH TIME ZONE USING uploaddate at time zone 'UTC+01:30';
不幸的是它不起作用,它正在添加 2015-06-30 07:30:48.785+05:30
。我目前在印度,是 +5.30。我如何指定查询以使用德国时区进行查询。谢谢你。
存储在 table 中的时间戳的时区是什么?也就是说,如果table中有2016-09-22 07:30
这样的值,那么07:30
是在什么时区?这是您要使用的时区,而不是您当前的本地时区。所以例如如果所有时间戳都以德国时区表示,你应该这样做:
alter table table_name
alter column uploaddate type TIMESTAMP WITH TIME ZONE
USING uploaddate at time zone 'Europe/Berlin';
不要忘记您可以 运行 在事务中执行上述操作,这样您就可以在提交结果之前检查结果(当然这会锁定整个 table 并阻止所有其他table).
的并发查询