【问题标题】:How to deal with TIMEZONE in PostgreSQL's timestamptz如何处理 PostgreSQL 的 timestamptz 中的 TIMEZONE
【发布时间】:2020-03-23 13:06:05
【问题描述】:

我有Usersbirthdatetimestamptz 类型。
PostgreSQL 中的TIMEZONE 设置为UTC
我在代码(.NET Core)中以以下方式设置birthdate

user.birthDate = DateTime.UtcNow;

如果我将TIMEZONE 设置为America\Los Angeles 并保存我的日期(来自.NET 代码的UTC 表示)会发生什么?我的UTC 表示会被视为America\Los Angeles,会导致无效的数据表示?

我是否应该始终将TIMEZONE 设置为UTCtimestamptz 是最佳实践吗?

【问题讨论】:

    标签: .net postgresql .net-core utc


    【解决方案1】:

    https://www.postgresql.org/docs/12/datatype-datetime.html#DATATYPE-TIMEZONES

    所有可识别时区的日期和时间都以 UTC 格式在内部存储。他们 在 TimeZone 指定的区域中转换为本地时间 显示给客户端之前的配置参数。

    在您的客户端代码中,您可以在会话级别更改时区参数;在数据库服务器级别使用 timestamptz(带有时区的时间戳),没有什么可改变的。

    使用带时区的时间戳而不是不带时区的时间戳被认为是最佳实践:请参阅https://tapoueh.org/blog/2018/04/postgresql-data-types-date-timestamp-and-time-zones/#date-time-and-time-zonesenter link description here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 2019-01-28
      • 2013-12-15
      • 1970-01-01
      相关资源
      最近更新 更多