在Postgresql中读写UTC到TIMESTAMP



我有一个Java应用程序,它使用准备好的语句将数据插入数据库。在preparedstatement中,日期以UTC格式设置。

preparedStatement.setDate(index, new java.sql.Date(date.getTime()), UTC);

我想确保在表上执行读写操作时,响应应该ALWAYS是UTC格式。在下面的查询中,当读取数据时,它将被转换为客户端的时区。我不希望将TIME_COLUMN转换为任何时区。它应该保持在UTC时区。如何以这种方式定义TIME_COLUMN ?

注意:我不能编辑DB时区。我无法使用At time zone编辑select查询。

"TIME_COLUMN" TIMESTAMPTZ default (now() at time zone 'utc'),

您可以将RDBMS的时区设置为UTC,参见https://medium.com/building-the-system/how-to-store-dates-and-times-in-postgresql-269bda8d6403

完成后,无论您存储的日期是什么,它们都将是UTC格式。从UTC转换为其他东西可以在查询中完成,如

select created_at at time zone 'utc' at time zone 'america/los_angeles'
from users;

摘自https://popsql.com/learn-sql/postgresql/how-to-convert-utc-to-local-time-zone-in-postgresql

或者,您可以在应用程序级别转换时区。

相关内容

  • 没有找到相关文章

最新更新